nzk-react-components 0.2.19-0 → 0.2.19-12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/index.js_commonjs-module +4 -0
- package/dist/_virtual/index.js_commonjs-module.map +1 -0
- package/dist/_virtual/index2.js_commonjs-module +4 -0
- package/dist/_virtual/index2.js_commonjs-module.map +1 -0
- package/dist/_virtual/index3.js_commonjs-module +4 -0
- package/dist/_virtual/index3.js_commonjs-module.map +1 -0
- package/dist/_virtual/react-is.development.js_commonjs-exports +4 -0
- package/dist/_virtual/react-is.development.js_commonjs-exports.map +1 -0
- package/dist/_virtual/react-is.production.min.js_commonjs-exports +4 -0
- package/dist/_virtual/react-is.production.min.js_commonjs-exports.map +1 -0
- package/dist/components/Avatar/Avatar.js +43 -0
- package/dist/components/Avatar/Avatar.js.map +1 -0
- package/dist/components/Avatar/Avatar.styles.js +10 -0
- package/dist/components/Avatar/Avatar.styles.js.map +1 -0
- package/dist/components/Avatar/index.js +3 -0
- package/dist/components/Avatar/index.js.map +1 -0
- package/dist/components/Button/Button.js +15 -0
- package/dist/components/Button/Button.js.map +1 -0
- package/dist/components/Button/Button.styles.js +23 -0
- package/dist/components/Button/Button.styles.js.map +1 -0
- package/dist/components/Button/constants.js +67 -0
- package/dist/components/Button/constants.js.map +1 -0
- package/dist/components/Button/index.js +3 -0
- package/dist/components/Button/index.js.map +1 -0
- package/dist/components/Button/utils.js +25 -0
- package/dist/components/Button/utils.js.map +1 -0
- package/dist/components/DrawingTool/DrawingTool.d.ts +8 -3
- package/dist/components/DrawingTool/DrawingTool.js +268 -0
- package/dist/components/DrawingTool/DrawingTool.js.map +1 -0
- package/dist/components/DrawingTool/DrawingTool.styles.d.ts +2 -1
- package/dist/components/DrawingTool/DrawingTool.styles.js +34 -0
- package/dist/components/DrawingTool/DrawingTool.styles.js.map +1 -0
- package/dist/components/DrawingTool/DrawingToolProvider.js +172 -0
- package/dist/components/DrawingTool/DrawingToolProvider.js.map +1 -0
- package/dist/components/DrawingTool/components/ColourToolbar/ColourToolbar.js +83 -0
- package/dist/components/DrawingTool/components/ColourToolbar/ColourToolbar.js.map +1 -0
- package/dist/components/DrawingTool/components/ColourToolbar/ColourToolbar.styles.js +9 -0
- package/dist/components/DrawingTool/components/ColourToolbar/ColourToolbar.styles.js.map +1 -0
- package/dist/components/DrawingTool/components/ColourToolbar/index.js +3 -0
- package/dist/components/DrawingTool/components/ColourToolbar/index.js.map +1 -0
- package/dist/components/DrawingTool/components/FileInput/FileInput.js +62 -0
- package/dist/components/DrawingTool/components/FileInput/FileInput.js.map +1 -0
- package/dist/components/DrawingTool/components/FileInput/FileInput.styles.js +11 -0
- package/dist/components/DrawingTool/components/FileInput/FileInput.styles.js.map +1 -0
- package/dist/components/DrawingTool/components/FileInput/index.js +3 -0
- package/dist/components/DrawingTool/components/FileInput/index.js.map +1 -0
- package/dist/components/DrawingTool/components/Header/Header.d.ts +9 -0
- package/dist/components/DrawingTool/components/Header/Header.js +24 -0
- package/dist/components/DrawingTool/components/Header/Header.js.map +1 -0
- package/dist/components/DrawingTool/components/Header/index.d.ts +2 -0
- package/dist/components/DrawingTool/components/Header/index.js +3 -0
- package/dist/components/DrawingTool/components/Header/index.js.map +1 -0
- package/dist/components/DrawingTool/components/OpacityToggle/OpacityToggle.js +24 -0
- package/dist/components/DrawingTool/components/OpacityToggle/OpacityToggle.js.map +1 -0
- package/dist/components/DrawingTool/components/OpacityToggle/OpacityToggle.styles.js +9 -0
- package/dist/components/DrawingTool/components/OpacityToggle/OpacityToggle.styles.js.map +1 -0
- package/dist/components/DrawingTool/components/OpacityToggle/index.js +3 -0
- package/dist/components/DrawingTool/components/OpacityToggle/index.js.map +1 -0
- package/dist/components/DrawingTool/components/Placeable/index.js +20 -0
- package/dist/components/DrawingTool/components/Placeable/index.js.map +1 -0
- package/dist/components/DrawingTool/lib/Sketch.js +382 -0
- package/dist/components/DrawingTool/lib/Sketch.js.map +1 -0
- package/dist/components/DrawingTool/lib/SketchCut.js +96 -0
- package/dist/components/DrawingTool/lib/SketchCut.js.map +1 -0
- package/dist/components/DrawingTool/lib/SketchCutModel.js +18 -0
- package/dist/components/DrawingTool/lib/SketchCutModel.js.map +1 -0
- package/dist/components/DrawingTool/lib/SketchLayer.js +56 -0
- package/dist/components/DrawingTool/lib/SketchLayer.js.map +1 -0
- package/dist/components/DrawingTool/lib/SketchModel.js +135 -0
- package/dist/components/DrawingTool/lib/SketchModel.js.map +1 -0
- package/dist/components/DrawingTool/lib/SketchStrokeModel.js +46 -0
- package/dist/components/DrawingTool/lib/SketchStrokeModel.js.map +1 -0
- package/dist/components/DrawingTool/lib/createInteractionSurface.js +54 -0
- package/dist/components/DrawingTool/lib/createInteractionSurface.js.map +1 -0
- package/dist/components/DrawingTool/lib/trace.js +22 -0
- package/dist/components/DrawingTool/lib/trace.js.map +1 -0
- package/dist/components/DrawingTool/lib/trimCanvas.js +40 -0
- package/dist/components/DrawingTool/lib/trimCanvas.js.map +1 -0
- package/dist/components/Icon/Icon.js +16 -0
- package/dist/components/Icon/Icon.js.map +1 -0
- package/dist/components/Icon/icons.js +241 -0
- package/dist/components/Icon/icons.js.map +1 -0
- package/dist/components/Icon/index.js +3 -0
- package/dist/components/Icon/index.js.map +1 -0
- package/dist/components/IconButton/IconButton.js +17 -0
- package/dist/components/IconButton/IconButton.js.map +1 -0
- package/dist/components/IconButton/index.js +3 -0
- package/dist/components/IconButton/index.js.map +1 -0
- package/dist/components/Modal/Modal.js +34 -0
- package/dist/components/Modal/Modal.js.map +1 -0
- package/dist/components/Modal/Modal.styles.js +12 -0
- package/dist/components/Modal/Modal.styles.js.map +1 -0
- package/dist/components/Modal/ModalState.js +55 -0
- package/dist/components/Modal/ModalState.js.map +1 -0
- package/dist/components/Modal/index.js +3 -0
- package/dist/components/Modal/index.js.map +1 -0
- package/dist/hooks/useAsync.js +53 -0
- package/dist/hooks/useAsync.js.map +1 -0
- package/dist/hooks/useCloudinary/index.js +45 -0
- package/dist/hooks/useCloudinary/index.js.map +1 -0
- package/dist/hooks/useConfettis/animations.js +67 -0
- package/dist/hooks/useConfettis/animations.js.map +1 -0
- package/dist/hooks/useConfettis/index.js +20 -0
- package/dist/hooks/useConfettis/index.js.map +1 -0
- package/dist/hooks/useDebounce.js +15 -0
- package/dist/hooks/useDebounce.js.map +1 -0
- package/dist/hooks/useElementSize.js +26 -0
- package/dist/hooks/useElementSize.js.map +1 -0
- package/dist/hooks/useEventListener.js +26 -0
- package/dist/hooks/useEventListener.js.map +1 -0
- package/dist/hooks/useMountState.js +13 -0
- package/dist/hooks/useMountState.js.map +1 -0
- package/dist/index.js +67 -46
- package/dist/index.js.map +1 -1
- package/package.json +5 -4
- package/dist/index.esm.js +0 -36543
- package/dist/index.esm.js.map +0 -1
- package/dist/nzk-react-components.min.js +0 -36586
- package/dist/nzk-react-components.min.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js_commonjs-module","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index2.js_commonjs-module","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index3.js_commonjs-module","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-is.development.js_commonjs-exports","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-is.production.min.js_commonjs-exports","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import React__default, { useMemo } from 'react';
|
|
2
|
+
import { Wrapper, Flag, AvatarImage } from './Avatar.styles.js';
|
|
3
|
+
|
|
4
|
+
var Avatar = function (props) {
|
|
5
|
+
var countryCode = useMemo(function () {
|
|
6
|
+
var _a;
|
|
7
|
+
return ((_a = props.user) === null || _a === void 0 ? void 0 : _a.countryCode) || props.countryCode;
|
|
8
|
+
}, [props]);
|
|
9
|
+
var avatarUrl = useMemo(function () {
|
|
10
|
+
var _a, _b, _c;
|
|
11
|
+
var avatarUrl = ((_b = (_a = props.user) === null || _a === void 0 ? void 0 : _a.avatar) === null || _b === void 0 ? void 0 : _b.url) || props.src;
|
|
12
|
+
if (avatarUrl)
|
|
13
|
+
return avatarUrl;
|
|
14
|
+
if (!avatarUrl && ((_c = props.user) === null || _c === void 0 ? void 0 : _c.type) === 'student')
|
|
15
|
+
return 'https://cdn.nightzookeeper.com/edu-assets/images/empty-avatar.png';
|
|
16
|
+
return 'https://cdn.nightzookeeper.com/nzk-assets/empty-avatar.png';
|
|
17
|
+
}, [props]);
|
|
18
|
+
var flagUrl = useMemo(function () {
|
|
19
|
+
if (!countryCode)
|
|
20
|
+
return undefined;
|
|
21
|
+
return "https://cdn.nightzookeeper.com/edu-assets/images/flags/" + countryCode + ".png";
|
|
22
|
+
}, [countryCode]);
|
|
23
|
+
var flagShown = useMemo(function () {
|
|
24
|
+
if (flagUrl && !props.flagHidden)
|
|
25
|
+
return true;
|
|
26
|
+
return false;
|
|
27
|
+
}, [flagUrl, props]);
|
|
28
|
+
return React__default.createElement(Wrapper, { size: props.size, colors: props.colors },
|
|
29
|
+
flagShown && React__default.createElement(Flag, { src: flagUrl }),
|
|
30
|
+
React__default.createElement(AvatarImage, { src: avatarUrl }));
|
|
31
|
+
};
|
|
32
|
+
Avatar.defaultProps = {
|
|
33
|
+
size: '60px',
|
|
34
|
+
flagHidden: false,
|
|
35
|
+
colors: {
|
|
36
|
+
border: '#8B26D4',
|
|
37
|
+
shadow: '#53167E',
|
|
38
|
+
dropshadow: 'rgba(0,0,0,0.4)'
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export { Avatar as default };
|
|
43
|
+
//# sourceMappingURL=Avatar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Avatar.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { __makeTemplateObject } from '../../node_modules/tslib/tslib.es6.js';
|
|
2
|
+
import styled from '../../node_modules/styled-components/dist/styled-components.browser.esm.js';
|
|
3
|
+
|
|
4
|
+
var Wrapper = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: relative;\n --border-color: ", ";\n --shadow-color: ", ";\n --dropshadow-color: ", ";\n --size: ", ";\n height: calc(var(--size) + calc(var(--size) * 0.1));\n width: var(--size);\n box-sizing: content-box !important;\n > * {\n box-sizing: content-box !important;\n }\n"], ["\n position: relative;\n --border-color: ", ";\n --shadow-color: ", ";\n --dropshadow-color: ", ";\n --size: ", ";\n height: calc(var(--size) + calc(var(--size) * 0.1));\n width: var(--size);\n box-sizing: content-box !important;\n > * {\n box-sizing: content-box !important;\n }\n"])), function (props) { var _a; return (_a = props.colors) === null || _a === void 0 ? void 0 : _a.border; }, function (props) { var _a; return (_a = props.colors) === null || _a === void 0 ? void 0 : _a.shadow; }, function (props) { var _a; return (_a = props.colors) === null || _a === void 0 ? void 0 : _a.dropshadow; }, function (props) { return props.size; });
|
|
5
|
+
var AvatarImage = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n height: calc(var(--size) - calc(var(--size) * 0.1));\n width: calc(100% - calc(var(--size) * 0.1));\n background-image: url(", ");\n background-size: cover;\n background-position: center;\n border: calc(var(--size) * 0.05) solid var(--border-color);\n box-shadow: 0 calc(var(--size) * 0.05) 0 var(--shadow-color), 0 calc(var(--size) * 0.1) 0 var(--dropshadow-color);\n background-color: #ebebeb;\n border-radius: 50%;\n overflow: hidden;\n"], ["\n height: calc(var(--size) - calc(var(--size) * 0.1));\n width: calc(100% - calc(var(--size) * 0.1));\n background-image: url(", ");\n background-size: cover;\n background-position: center;\n border: calc(var(--size) * 0.05) solid var(--border-color);\n box-shadow: 0 calc(var(--size) * 0.05) 0 var(--shadow-color), 0 calc(var(--size) * 0.1) 0 var(--dropshadow-color);\n background-color: #ebebeb;\n border-radius: 50%;\n overflow: hidden;\n"])), function (props) { return props.src; });
|
|
6
|
+
var Flag = styled.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n position: absolute;\n height: calc(var(--size) * 0.35);\n width: calc(var(--size) * 0.35);\n top: 0;\n right: 0;\n background-image: url(", ");\n background-size: cover;\n background-position: center;\n border-radius: 50%;\n border: calc(var(--size) * 0.6 * 0.05) solid var(--border-color);\n box-shadow: 0 calc(var(--size) * 0.6 * 0.05) 0 var(--shadow-color), 0 calc(var(--size) * 0.6 * 0.1) 0 var(--dropshadow-color);\n \n"], ["\n position: absolute;\n height: calc(var(--size) * 0.35);\n width: calc(var(--size) * 0.35);\n top: 0;\n right: 0;\n background-image: url(", ");\n background-size: cover;\n background-position: center;\n border-radius: 50%;\n border: calc(var(--size) * 0.6 * 0.05) solid var(--border-color);\n box-shadow: 0 calc(var(--size) * 0.6 * 0.05) 0 var(--shadow-color), 0 calc(var(--size) * 0.6 * 0.1) 0 var(--dropshadow-color);\n \n"])), function (props) { return props.src; });
|
|
7
|
+
var templateObject_1, templateObject_2, templateObject_3;
|
|
8
|
+
|
|
9
|
+
export { AvatarImage, Flag, Wrapper };
|
|
10
|
+
//# sourceMappingURL=Avatar.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Avatar.styles.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { __assign } from '../../node_modules/tslib/tslib.es6.js';
|
|
2
|
+
import React__default from 'react';
|
|
3
|
+
import { Wrapper } from './Button.styles.js';
|
|
4
|
+
import { SIZES, THEMES } from './constants.js';
|
|
5
|
+
|
|
6
|
+
var Button = function (props) {
|
|
7
|
+
return (React__default.createElement(Wrapper, __assign({ height: props.size && SIZES[props.size] }, props, (props.theme ? THEMES[props.theme] : {}), { onClick: function () {
|
|
8
|
+
if (props.onClick) {
|
|
9
|
+
props.onClick();
|
|
10
|
+
}
|
|
11
|
+
} })));
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export { Button as default };
|
|
15
|
+
//# sourceMappingURL=Button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { __makeTemplateObject } from '../../node_modules/tslib/tslib.es6.js';
|
|
2
|
+
import { getLuminance, darken as curriedDarken, lighten as curriedLighten } from '../../node_modules/polished/dist/polished.esm.js';
|
|
3
|
+
import styled, { css as Ae } from '../../node_modules/styled-components/dist/styled-components.browser.esm.js';
|
|
4
|
+
import { getSizeComparedToBase, getPadding, getTextSize, getTextColor } from './utils.js';
|
|
5
|
+
|
|
6
|
+
var getShadows = function (props) {
|
|
7
|
+
var light = getLuminance(props.backgroundColor);
|
|
8
|
+
var shadowColor = props.shadowColor
|
|
9
|
+
|| light && curriedDarken(0.2, props.backgroundColor)
|
|
10
|
+
|| !light && curriedLighten(0.2, props.backgroundColor);
|
|
11
|
+
var dropShadowColor = props.dropShadowColor || "rgba(0,0,0,0.3)";
|
|
12
|
+
var strokeColor = props.strokeColor
|
|
13
|
+
|| light && curriedLighten(0.1, props.backgroundColor)
|
|
14
|
+
|| !light && curriedDarken(0.1, props.backgroundColor);
|
|
15
|
+
return Ae(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n box-shadow: 0 ", "px 0 ", ",\n 0 ", "px 0 ", ",\n inset 0 0px 0px ", "px ", ";\n\n :active {\n transform: translateY(", "px);\n box-shadow: 0 ", "px 0 ", ",\n inset 0 0px 0px ", "px ", ";\n }\n "], ["\n box-shadow: 0 ", "px 0 ", ",\n 0 ", "px 0 ", ",\n inset 0 0px 0px ", "px ", ";\n\n :active {\n transform: translateY(", "px);\n box-shadow: 0 ", "px 0 ", ",\n inset 0 0px 0px ", "px ", ";\n }\n "])), getSizeComparedToBase(props, 5), shadowColor, getSizeComparedToBase(props, 12), dropShadowColor, getSizeComparedToBase(props, 5), strokeColor, getSizeComparedToBase(props, 7), getSizeComparedToBase(props, 5), shadowColor, getSizeComparedToBase(props, 5), strokeColor);
|
|
16
|
+
};
|
|
17
|
+
var Wrapper = styled.div(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-family: 'Rammetto One';\n border-radius: 1000px;\n cursor: pointer;\n user-select: none;\n ", ";\n ", "\n ", "\n ", "\n\n svg {\n height: 100%;\n width: 100%;\n }\n"], ["\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-family: 'Rammetto One';\n border-radius: 1000px;\n cursor: pointer;\n user-select: none;\n ", ";\n ", "\n ", "\n ", "\n\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) { return Ae(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n background-color: ", ";\n height: ", "px;\n margin-bottom: ", "px;\n color: ", ";\n font-size: ", ";\n padding: ", ";\n ", ";\n filter: ", ";\n "], ["\n background-color: ", ";\n height: ", "px;\n margin-bottom: ", "px;\n color: ", ";\n font-size: ", ";\n padding: ", ";\n ", ";\n filter: ", ";\n "])), props.backgroundColor, props.height, getSizeComparedToBase(props, 12), getTextColor(props), getTextSize(props), getPadding(props), getShadows(props), props.disabled ? 'grayscale(100%)' : 'none'); }, function (props) { return props.fullWidth && Ae(templateObject_3 || (templateObject_3 = __makeTemplateObject(["width: 100%;"], ["width: 100%;"]))); }, function (props) { return props.wiggle && Ae(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n animation: wiggle alternate-reverse 2s linear infinite;\n animation-delay: ", "s;\n @keyframes wiggle {\n 0% {\n transform: rotate(-3deg);\n }\n 10% {\n transform: rotate(3deg);\n }\n 20% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(0deg);\n }\n }\n "], ["\n animation: wiggle alternate-reverse 2s linear infinite;\n animation-delay: ", "s;\n @keyframes wiggle {\n 0% {\n transform: rotate(-3deg);\n }\n 10% {\n transform: rotate(3deg);\n }\n 20% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(0deg);\n }\n }\n "])), Math.random()); }, function (props) {
|
|
18
|
+
return props.round && Ae(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n width: ", "px;\n padding: 0;\n flex-shrink: 0;\n "], ["\n width: ", "px;\n padding: 0;\n flex-shrink: 0;\n "])), props.height);
|
|
19
|
+
});
|
|
20
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;
|
|
21
|
+
|
|
22
|
+
export { Wrapper, getShadows };
|
|
23
|
+
//# sourceMappingURL=Button.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.styles.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
var THEMES = {
|
|
2
|
+
primary: {
|
|
3
|
+
backgroundColor: '#009EE2',
|
|
4
|
+
color: '#fff',
|
|
5
|
+
strokeColor: '#00C5ED',
|
|
6
|
+
shadowColor: '#025899'
|
|
7
|
+
},
|
|
8
|
+
confirm: {
|
|
9
|
+
backgroundColor: '#8CC63F',
|
|
10
|
+
color: '#fff',
|
|
11
|
+
strokeColor: '#AFD752',
|
|
12
|
+
shadowColor: '#579800'
|
|
13
|
+
},
|
|
14
|
+
'the-pink': {
|
|
15
|
+
backgroundColor: '#E40071',
|
|
16
|
+
color: '',
|
|
17
|
+
shadowColor: '',
|
|
18
|
+
strokeColor: ''
|
|
19
|
+
},
|
|
20
|
+
'purple': {
|
|
21
|
+
backgroundColor: '#701EA8',
|
|
22
|
+
color: '',
|
|
23
|
+
shadowColor: '#4E1B6D',
|
|
24
|
+
strokeColor: '#9026C1'
|
|
25
|
+
},
|
|
26
|
+
'red': {
|
|
27
|
+
color: 'white',
|
|
28
|
+
backgroundColor: '#E20514',
|
|
29
|
+
strokeColor: '#F60A21',
|
|
30
|
+
shadowColor: '#931120'
|
|
31
|
+
},
|
|
32
|
+
'orange': {
|
|
33
|
+
color: 'white',
|
|
34
|
+
backgroundColor: '#F29226',
|
|
35
|
+
strokeColor: '#F6B230',
|
|
36
|
+
shadowColor: '#CB6217'
|
|
37
|
+
},
|
|
38
|
+
'green': {
|
|
39
|
+
color: 'white',
|
|
40
|
+
backgroundColor: '#8DC63F',
|
|
41
|
+
strokeColor: '#AED752',
|
|
42
|
+
shadowColor: '#58981F'
|
|
43
|
+
},
|
|
44
|
+
'yellow': {
|
|
45
|
+
color: 'white',
|
|
46
|
+
backgroundColor: '#FEC532',
|
|
47
|
+
strokeColor: '#FEE13A',
|
|
48
|
+
shadowColor: '#C59928'
|
|
49
|
+
},
|
|
50
|
+
'white': {
|
|
51
|
+
color: '',
|
|
52
|
+
backgroundColor: '#EEEEEE',
|
|
53
|
+
strokeColor: '#D9D9D9',
|
|
54
|
+
shadowColor: '#8E9197'
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
var SIZES = {
|
|
58
|
+
'xx-large': 142,
|
|
59
|
+
'x-large': 109,
|
|
60
|
+
large: 71,
|
|
61
|
+
regular: 50,
|
|
62
|
+
small: 39,
|
|
63
|
+
'x-small': 30
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
export { SIZES, THEMES };
|
|
67
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { getLuminance } from '../../node_modules/polished/dist/polished.esm.js';
|
|
2
|
+
|
|
3
|
+
var getTextColor = function (props) {
|
|
4
|
+
if (props.color) {
|
|
5
|
+
return props.color;
|
|
6
|
+
}
|
|
7
|
+
if (getLuminance(props.backgroundColor) <= 0.5)
|
|
8
|
+
return '#fff';
|
|
9
|
+
return '#000';
|
|
10
|
+
};
|
|
11
|
+
var getTextSize = function (props) {
|
|
12
|
+
if (props.fontSize) {
|
|
13
|
+
return props.fontSize;
|
|
14
|
+
}
|
|
15
|
+
return props.height / 2.5 + "px";
|
|
16
|
+
};
|
|
17
|
+
var getPadding = function (props) {
|
|
18
|
+
return 0.001 * props.height + "px " + props.height / 2 + "px";
|
|
19
|
+
};
|
|
20
|
+
var getSizeComparedToBase = function (props, originalValue) {
|
|
21
|
+
return (props.height * originalValue) / 64;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export { getPadding, getSizeComparedToBase, getTextColor, getTextSize };
|
|
25
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
2
|
export interface Props {
|
|
3
3
|
prompt: string;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
showHeader: boolean;
|
|
5
|
+
onBack: () => void;
|
|
6
|
+
onSave: () => void;
|
|
6
7
|
showPaperBackground?: boolean;
|
|
7
8
|
disableCameraUpload?: boolean;
|
|
8
9
|
disableAutoCache?: boolean;
|
|
@@ -13,6 +14,10 @@ export declare type Orientation = 'LANDSCAPE' | 'PORTRAIT';
|
|
|
13
14
|
declare const Drawing: {
|
|
14
15
|
(props: Props): JSX.Element;
|
|
15
16
|
defaultProps: {
|
|
17
|
+
prompt: string;
|
|
18
|
+
showHeader: boolean;
|
|
19
|
+
onBack: () => void;
|
|
20
|
+
onSave: () => void;
|
|
16
21
|
showPaperBackground: boolean;
|
|
17
22
|
disableCameraUpload: boolean;
|
|
18
23
|
disableAutoCache: boolean;
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
import { __assign } from '../../node_modules/tslib/tslib.es6.js';
|
|
2
|
+
import React__default, { useRef, useState, useEffect, useLayoutEffect } from 'react';
|
|
3
|
+
import { getLuminance, darken as curriedDarken, lighten as curriedLighten } from '../../node_modules/polished/dist/polished.esm.js';
|
|
4
|
+
import Moveable from '../../node_modules/react-moveable/dist/moveable.esm.js';
|
|
5
|
+
import MoveableHelper from '../../node_modules/moveable-helper/dist/moveable-helper.esm.js';
|
|
6
|
+
import ReactTooltip from '../../node_modules/react-tooltip/dist/index.es.js';
|
|
7
|
+
import { Container, Tool, LeftToolbarContainer, ButtonGroup, SketchContainer, PaperBackground, ImageToPlaceContainer, ImageToPlace, InSketchActions, InSketchAction, CutImageTutorial, RightToolbarContainer, ModalOverlay } from './DrawingTool.styles.js';
|
|
8
|
+
import useDebounce from '../../hooks/useDebounce.js';
|
|
9
|
+
import useElementSize from '../../hooks/useElementSize.js';
|
|
10
|
+
import Button from '../Button/Button.js';
|
|
11
|
+
import Icon from '../Icon/Icon.js';
|
|
12
|
+
import IconButton from '../IconButton/IconButton.js';
|
|
13
|
+
import ColourToolbar from './components/ColourToolbar/ColourToolbar.js';
|
|
14
|
+
import Modal from '../Modal/Modal.js';
|
|
15
|
+
import { useDrawingTool, BrushSize } from './DrawingToolProvider.js';
|
|
16
|
+
import FileInput from './components/FileInput/FileInput.js';
|
|
17
|
+
import Placeable from './components/Placeable/index.js';
|
|
18
|
+
import OpacityToggle from './components/OpacityToggle/OpacityToggle.js';
|
|
19
|
+
import Header from './components/Header/Header.js';
|
|
20
|
+
|
|
21
|
+
var Drawing = function (props) {
|
|
22
|
+
var _a, _b;
|
|
23
|
+
var containerRef = useRef(null);
|
|
24
|
+
var sketchOuterRef = useRef(null);
|
|
25
|
+
var sketchInnerRef = useRef(null);
|
|
26
|
+
var sketchCutInnerRef = useRef(null);
|
|
27
|
+
var imageToPlaceContainerRef = useRef(null);
|
|
28
|
+
var moveableRef = useRef(null);
|
|
29
|
+
var helper = useState(function () {
|
|
30
|
+
return new MoveableHelper();
|
|
31
|
+
})[0];
|
|
32
|
+
var _c = useElementSize(containerRef), containerWidth = _c.width, containerHeight = _c.height;
|
|
33
|
+
var debouncedContainerWidth = useDebounce(containerWidth, 1000);
|
|
34
|
+
var debouncedContainerHeight = useDebounce(containerHeight, 1000);
|
|
35
|
+
var _d = useState('LANDSCAPE'), orientation = _d[0], setOrientation = _d[1];
|
|
36
|
+
var _e = useState(1280), maxContainerWidth = _e[0], setMaxContainerWidth = _e[1];
|
|
37
|
+
var _f = useState(960), maxContainerHeight = _f[0], setMaxContainerHeight = _f[1];
|
|
38
|
+
var _g = useState(50), buttonSize = _g[0], setButtonSize = _g[1];
|
|
39
|
+
var _h = useState(false), isMobile = _h[0], setIsMobile = _h[1];
|
|
40
|
+
var _j = useState(true), resizing = _j[0], setResizing = _j[1];
|
|
41
|
+
var _k = useState(false), showRestartConfirmModal = _k[0], setShowRestartConfirmModal = _k[1];
|
|
42
|
+
var _l = useState(props.openUploadPopupOnStart), showFileInput = _l[0], setShowFileInput = _l[1];
|
|
43
|
+
var _m = useState(), imageToCut = _m[0], setImageToCut = _m[1];
|
|
44
|
+
var _o = useState(true), showCutTutorial = _o[0], setShowCutTutorial = _o[1];
|
|
45
|
+
var _p = useState(false), showSaveCutAction = _p[0], setShowSaveCutAction = _p[1];
|
|
46
|
+
var _q = useState(), imageToPlace = _q[0], setImageToPlace = _q[1];
|
|
47
|
+
var _r = 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;
|
|
48
|
+
useEffect(function () {
|
|
49
|
+
if (typeof props.disableAutoCache === 'boolean') {
|
|
50
|
+
setAutoCache(!props.disableAutoCache);
|
|
51
|
+
}
|
|
52
|
+
if (props.cacheKey)
|
|
53
|
+
setCacheKey(props.cacheKey);
|
|
54
|
+
}, []);
|
|
55
|
+
useLayoutEffect(function () {
|
|
56
|
+
if (debouncedContainerHeight !== containerHeight || debouncedContainerWidth !== containerWidth) {
|
|
57
|
+
setResizing(true);
|
|
58
|
+
}
|
|
59
|
+
else if (containerWidth > 0 && containerHeight > 0) {
|
|
60
|
+
setResizing(false);
|
|
61
|
+
if (containerWidth < 768) {
|
|
62
|
+
setIsMobile(true);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
setIsMobile(false);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}, [debouncedContainerWidth, debouncedContainerHeight, containerWidth, containerHeight]);
|
|
69
|
+
useLayoutEffect(function () {
|
|
70
|
+
setMaxContainerHeight(containerWidth * 1.4);
|
|
71
|
+
setMaxContainerWidth(containerHeight * 1.4);
|
|
72
|
+
if (containerWidth < containerHeight && containerWidth < 1024) {
|
|
73
|
+
setButtonSize(Math.floor(containerWidth / 11) * 0.85);
|
|
74
|
+
setOrientation('PORTRAIT');
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
if (containerHeight < 420) {
|
|
78
|
+
setButtonSize(Math.floor(containerHeight / 13) * 0.85);
|
|
79
|
+
}
|
|
80
|
+
else if (containerHeight < 1024) {
|
|
81
|
+
setButtonSize(Math.floor(containerHeight / 12) * 0.85);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
setButtonSize(Math.floor(containerHeight / 11) * 0.85);
|
|
85
|
+
}
|
|
86
|
+
setOrientation('LANDSCAPE');
|
|
87
|
+
}
|
|
88
|
+
}, [containerWidth, containerHeight]);
|
|
89
|
+
useEffect(function () {
|
|
90
|
+
if (!imageToCut && !resizing && sketchInnerRef.current) {
|
|
91
|
+
initSketch(sketchInnerRef.current);
|
|
92
|
+
}
|
|
93
|
+
}, [resizing, sketchInnerRef, imageToCut]);
|
|
94
|
+
useEffect(function () {
|
|
95
|
+
if (!resizing && sketchCutInnerRef.current && imageToCut) {
|
|
96
|
+
initSketchCut(sketchCutInnerRef.current, imageToCut, function () {
|
|
97
|
+
setShowSaveCutAction(true);
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}, [resizing, sketchCutInnerRef, imageToCut]);
|
|
101
|
+
var onClickRestart = function () {
|
|
102
|
+
setShowRestartConfirmModal(true);
|
|
103
|
+
};
|
|
104
|
+
var onClickCamera = function () {
|
|
105
|
+
setShowFileInput(true);
|
|
106
|
+
};
|
|
107
|
+
var onImageUploaded = function (image) {
|
|
108
|
+
setShowFileInput(false);
|
|
109
|
+
setImageToCut(image);
|
|
110
|
+
setToolMode("CUT");
|
|
111
|
+
};
|
|
112
|
+
var strokeBrushColour = getLuminance(currentColour.hex) > 0.05 ? curriedDarken(0.15, currentColour.hex) : curriedLighten(0.1, currentColour.hex);
|
|
113
|
+
var deselectedButtonColourProps = {
|
|
114
|
+
theme: 'white'
|
|
115
|
+
};
|
|
116
|
+
var selectedButtonColourProps = {
|
|
117
|
+
backgroundColor: currentColour.hex,
|
|
118
|
+
strokeColor: strokeBrushColour,
|
|
119
|
+
dropShadowColor: 'rgba(0,0,0,.3)',
|
|
120
|
+
shadowColor: 'rgba(0,0,0,.5)'
|
|
121
|
+
};
|
|
122
|
+
var eraserBrushColourProps = (brushType === 'eraser' ? selectedButtonColourProps : deselectedButtonColourProps);
|
|
123
|
+
var fillBrushColourProps = (brushType === 'fill' ? selectedButtonColourProps : deselectedButtonColourProps);
|
|
124
|
+
var lineBrushColourProps = (brushType === 'line' ? selectedButtonColourProps : deselectedButtonColourProps);
|
|
125
|
+
var smallLineColourProps = (brushSize === BrushSize.small ? selectedButtonColourProps : deselectedButtonColourProps);
|
|
126
|
+
var mediumLineColourProps = (brushSize === BrushSize.medium ? selectedButtonColourProps : deselectedButtonColourProps);
|
|
127
|
+
var largeLineColourProps = (brushSize === BrushSize.large ? selectedButtonColourProps : deselectedButtonColourProps);
|
|
128
|
+
var sketchStyles;
|
|
129
|
+
if (!resizing && sketchOuterRef && sketchOuterRef.current) {
|
|
130
|
+
sketchStyles = {
|
|
131
|
+
width: sketchOuterRef.current.offsetWidth + "px",
|
|
132
|
+
height: sketchOuterRef.current.offsetHeight + "px",
|
|
133
|
+
position: 'absolute',
|
|
134
|
+
top: '0px',
|
|
135
|
+
left: '0px'
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
var disableToolbars = (showFileInput || showRestartConfirmModal || imageToCut || imageToPlace);
|
|
139
|
+
var inSketchActions = [];
|
|
140
|
+
if (showSaveCutAction) {
|
|
141
|
+
inSketchActions.push({
|
|
142
|
+
key: 'retry-cut',
|
|
143
|
+
component: React__default.createElement(IconButton, { icon: React__default.createElement(Icon, { name: "drawing-tool-undo", fill: "white" }), theme: 'orange', size: isMobile ? "small" : "regular", onClick: function () {
|
|
144
|
+
setShowSaveCutAction(false);
|
|
145
|
+
setShowCutTutorial(true);
|
|
146
|
+
resetCut();
|
|
147
|
+
} }, "Retry")
|
|
148
|
+
}, {
|
|
149
|
+
key: 'save-cut',
|
|
150
|
+
component: React__default.createElement(IconButton, { icon: React__default.createElement(Icon, { name: "tick" }), theme: 'confirm', size: isMobile ? "small" : "regular", onClick: function () {
|
|
151
|
+
setShowSaveCutAction(false);
|
|
152
|
+
setImageToCut(undefined);
|
|
153
|
+
var newImage = new Image;
|
|
154
|
+
newImage.onload = function () {
|
|
155
|
+
setImageToPlace(newImage);
|
|
156
|
+
setToolMode('PLACE');
|
|
157
|
+
};
|
|
158
|
+
newImage.src = exportSketchCut();
|
|
159
|
+
} }, "Save")
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
else if (imageToPlace) {
|
|
163
|
+
inSketchActions.push({
|
|
164
|
+
key: 'cancel-place',
|
|
165
|
+
component: React__default.createElement(IconButton, { icon: React__default.createElement(Icon, { name: "close" }), theme: 'red', size: isMobile ? "small" : "regular", onClick: function () {
|
|
166
|
+
setImageToPlace(undefined);
|
|
167
|
+
setToolMode('DRAW');
|
|
168
|
+
} }, "Cancel")
|
|
169
|
+
}, {
|
|
170
|
+
key: 'save-place',
|
|
171
|
+
component: React__default.createElement(IconButton, { icon: React__default.createElement(Icon, { name: "tick" }), theme: 'confirm', size: isMobile ? "small" : "regular", onClick: function () {
|
|
172
|
+
if (moveableRef.current) {
|
|
173
|
+
var rect = moveableRef.current.getRect();
|
|
174
|
+
mergeImage({
|
|
175
|
+
image: imageToPlace,
|
|
176
|
+
x: rect.left,
|
|
177
|
+
y: rect.top,
|
|
178
|
+
origin: rect.origin,
|
|
179
|
+
width: Math.hypot(rect.pos2[0] - rect.pos1[0], rect.pos2[1] - rect.pos1[1]),
|
|
180
|
+
height: Math.hypot(rect.pos3[0] - rect.pos2[0], rect.pos3[1] - rect.pos2[1]),
|
|
181
|
+
rotation: rect.rotation
|
|
182
|
+
});
|
|
183
|
+
setToolMode('DRAW');
|
|
184
|
+
setImageToPlace(undefined);
|
|
185
|
+
}
|
|
186
|
+
} }, "Save")
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
var headerHeight = 90;
|
|
190
|
+
if (containerHeight < 800 || containerWidth < 728)
|
|
191
|
+
headerHeight = 70;
|
|
192
|
+
if (containerHeight < 500 || containerWidth < 500)
|
|
193
|
+
headerHeight = 50;
|
|
194
|
+
return React__default.createElement(Container, { ref: containerRef, maxWidth: maxContainerWidth, maxHeight: maxContainerHeight },
|
|
195
|
+
props.showHeader && React__default.createElement(Header, { height: headerHeight, prompt: props.prompt, onBack: props.onBack, onSave: props.onSave }),
|
|
196
|
+
React__default.createElement(Tool, { hasHeader: props.showHeader, headerHeight: headerHeight, orientation: orientation },
|
|
197
|
+
React__default.createElement(ReactTooltip, { effect: "solid", delayShow: 750, multiline: true }),
|
|
198
|
+
React__default.createElement(LeftToolbarContainer, { orientation: orientation, buttonSize: buttonSize, disabled: disableToolbars },
|
|
199
|
+
React__default.createElement(ButtonGroup, { orientation: orientation, buttonSize: buttonSize },
|
|
200
|
+
React__default.createElement(Button, { "data-tip": "Start again?", height: buttonSize, round: true, theme: 'red', onClick: onClickRestart },
|
|
201
|
+
React__default.createElement(Icon, { name: 'trash-white' }))),
|
|
202
|
+
React__default.createElement(ButtonGroup, { orientation: orientation, buttonSize: buttonSize },
|
|
203
|
+
React__default.createElement(Button, { height: buttonSize, round: true, theme: "white", onClick: undo },
|
|
204
|
+
React__default.createElement(Icon, { fill: currentColour.hex, name: 'drawing-tool-undo' })),
|
|
205
|
+
React__default.createElement(Button, { height: buttonSize, round: true, theme: "white", onClick: redo },
|
|
206
|
+
React__default.createElement(Icon, { fill: currentColour.hex, name: 'drawing-tool-redo' }))),
|
|
207
|
+
!props.disableCameraUpload && React__default.createElement(ButtonGroup, { orientation: orientation, buttonSize: buttonSize },
|
|
208
|
+
React__default.createElement(Button, { "data-tip": "Upload a drawing", height: buttonSize, round: true, theme: 'purple', onClick: onClickCamera },
|
|
209
|
+
React__default.createElement(Icon, { name: 'drawing-tool-camera' }))),
|
|
210
|
+
React__default.createElement(ButtonGroup, { orientation: orientation, buttonSize: buttonSize },
|
|
211
|
+
React__default.createElement(Button, __assign({ height: buttonSize, round: true }, eraserBrushColourProps, { onClick: function () { return setBrushType('eraser'); } }),
|
|
212
|
+
React__default.createElement(Icon, { "data-tip": "Eraser", fill: brushType === 'eraser' ? 'white' : currentColour.hex, name: 'drawing-tool-eraser' })),
|
|
213
|
+
React__default.createElement(Button, __assign({ "data-tip": "Fill brush", height: buttonSize, round: true }, fillBrushColourProps, { onClick: function () { return setBrushType('fill'); } }),
|
|
214
|
+
React__default.createElement(Icon, { fill: brushType === 'fill' ? 'white' : currentColour.hex, name: 'drawing-tool-fill-brush' })),
|
|
215
|
+
React__default.createElement(Button, __assign({ "data-tip": "Line brush", height: buttonSize, round: true }, lineBrushColourProps, { onClick: function () { return setBrushType('line'); } }),
|
|
216
|
+
React__default.createElement(Icon, { fill: brushType === 'line' ? 'white' : currentColour.hex, name: 'drawing-tool-line-brush' })),
|
|
217
|
+
React__default.createElement(Button, __assign({ height: buttonSize, round: true }, smallLineColourProps, { onClick: function () { return setBrushSize(BrushSize.small); } }),
|
|
218
|
+
React__default.createElement(Icon, { fill: brushSize === BrushSize.small ? 'white' : currentColour.hex, name: 'drawing-tool-small-line' })),
|
|
219
|
+
React__default.createElement(Button, __assign({ height: buttonSize, round: true }, mediumLineColourProps, { onClick: function () { return setBrushSize(BrushSize.medium); } }),
|
|
220
|
+
React__default.createElement(Icon, { fill: brushSize === BrushSize.medium ? 'white' : currentColour.hex, name: 'drawing-tool-medium-line' })),
|
|
221
|
+
React__default.createElement(Button, __assign({ height: buttonSize, round: true }, largeLineColourProps, { onClick: function () { return setBrushSize(BrushSize.large); } }),
|
|
222
|
+
React__default.createElement(Icon, { fill: brushSize === BrushSize.large ? 'white' : currentColour.hex, name: 'drawing-tool-large-line' })))),
|
|
223
|
+
React__default.createElement(SketchContainer, { orientation: orientation, ref: sketchOuterRef },
|
|
224
|
+
props.showPaperBackground && React__default.createElement(PaperBackground, { cutMode: imageToCut && true }),
|
|
225
|
+
!imageToCut && sketchStyles && React__default.createElement("div", { style: sketchStyles, ref: sketchInnerRef }),
|
|
226
|
+
imageToCut && sketchStyles && React__default.createElement("div", { style: sketchStyles, ref: sketchCutInnerRef }),
|
|
227
|
+
imageToPlace && sketchStyles && (React__default.createElement("div", { style: __assign(__assign({}, sketchStyles), { zIndex: '101' }) },
|
|
228
|
+
React__default.createElement(ImageToPlaceContainer, null,
|
|
229
|
+
React__default.createElement(ImageToPlace, { ref: imageToPlaceContainerRef, src: imageToPlace.src })),
|
|
230
|
+
React__default.createElement(Moveable, { ref: moveableRef, target: imageToPlaceContainerRef, ables: [Placeable], props: {
|
|
231
|
+
placeable: true,
|
|
232
|
+
}, 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 }))),
|
|
233
|
+
inSketchActions.length && (React__default.createElement(InSketchActions, null, inSketchActions.map(function (action) { return (React__default.createElement(InSketchAction, { key: action.key }, action.component)); }))),
|
|
234
|
+
imageToCut && showCutTutorial && React__default.createElement(CutImageTutorial, { onClick: function () { return setShowCutTutorial(false); } },
|
|
235
|
+
React__default.createElement("div", null, "Now cut out your animal: Click, hold and make sure you draw around it."),
|
|
236
|
+
React__default.createElement("img", { alt: "crop example", src: "https://cdn.nightzookeeper.com/nzk-assets/crop-tutorial.png" }),
|
|
237
|
+
React__default.createElement("div", null,
|
|
238
|
+
React__default.createElement(Button, { size: isMobile ? "small" : "regular", theme: "primary" }, "Ok")))),
|
|
239
|
+
React__default.createElement(RightToolbarContainer, { orientation: orientation, buttonSize: buttonSize, disabled: disableToolbars },
|
|
240
|
+
React__default.createElement(ColourToolbar, { orientation: orientation, size: buttonSize, currentColour: currentColour }),
|
|
241
|
+
React__default.createElement(OpacityToggle, { orientation: orientation, buttonSize: buttonSize }))),
|
|
242
|
+
showRestartConfirmModal && React__default.createElement(ModalOverlay, null,
|
|
243
|
+
React__default.createElement(Modal, { title: "Are you sure?", actions: [
|
|
244
|
+
React__default.createElement(Button, { key: 'cancel', size: isMobile ? "small" : "regular", theme: "red", onClick: function () {
|
|
245
|
+
setShowRestartConfirmModal(false);
|
|
246
|
+
} }, "No"),
|
|
247
|
+
React__default.createElement(Button, { key: 'confirm', size: isMobile ? "small" : "regular", theme: "confirm", onClick: function () {
|
|
248
|
+
restart();
|
|
249
|
+
setShowRestartConfirmModal(false);
|
|
250
|
+
} }, "Yes"),
|
|
251
|
+
] })),
|
|
252
|
+
showFileInput && React__default.createElement(ModalOverlay, null,
|
|
253
|
+
React__default.createElement(FileInput, { isMobile: isMobile, dismiss: function () { return setShowFileInput(false); }, onImageUploaded: onImageUploaded })));
|
|
254
|
+
};
|
|
255
|
+
Drawing.defaultProps = {
|
|
256
|
+
prompt: 'Draw your Animal',
|
|
257
|
+
showHeader: true,
|
|
258
|
+
onBack: function () { },
|
|
259
|
+
onSave: function () { },
|
|
260
|
+
showPaperBackground: true,
|
|
261
|
+
disableCameraUpload: false,
|
|
262
|
+
disableAutoCache: false,
|
|
263
|
+
cacheKey: 'nzk-sketch-cache',
|
|
264
|
+
openUploadPopupOnStart: false
|
|
265
|
+
};
|
|
266
|
+
|
|
267
|
+
export { Drawing as default };
|
|
268
|
+
//# sourceMappingURL=DrawingTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DrawingTool.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -3,9 +3,10 @@ export declare const Container: import("styled-components").StyledComponent<"div
|
|
|
3
3
|
maxWidth: number;
|
|
4
4
|
maxHeight: number;
|
|
5
5
|
}, never>;
|
|
6
|
-
export declare const Header: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
7
6
|
export declare const Tool: import("styled-components").StyledComponent<"div", any, {
|
|
8
7
|
orientation: Orientation;
|
|
8
|
+
hasHeader: boolean;
|
|
9
|
+
headerHeight: number;
|
|
9
10
|
}, never>;
|
|
10
11
|
export declare const ButtonGroup: import("styled-components").StyledComponent<"div", any, {
|
|
11
12
|
orientation: Orientation;
|