@yorab/react-paint 0.7.6 → 0.8.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 (149) hide show
  1. package/dist/components/App.d.ts +20 -0
  2. package/dist/components/Canvas.d.ts +38 -0
  3. package/dist/components/common/Button.d.ts +16 -0
  4. package/dist/components/common/Loading.d.ts +7 -0
  5. package/dist/components/common/Modal.d.ts +10 -0
  6. package/dist/components/common/Panel.d.ts +13 -0
  7. package/dist/components/common/Snackbar.d.ts +8 -0
  8. package/dist/components/settings/ColorField.d.ts +15 -0
  9. package/dist/components/settings/DeleteButton.d.ts +9 -0
  10. package/dist/components/settings/FontFamilyField.d.ts +12 -0
  11. package/dist/components/settings/LayoutButton.d.ts +8 -0
  12. package/dist/components/settings/Layouts.d.ts +19 -0
  13. package/dist/components/settings/LineArrowField.d.ts +12 -0
  14. package/dist/components/settings/LineTypeField.d.ts +16 -0
  15. package/dist/components/settings/PointsNumberField.d.ts +13 -0
  16. package/dist/components/settings/RangeField.d.ts +18 -0
  17. package/dist/components/settings/SelectField.d.ts +18 -0
  18. package/dist/components/settings/SettingsBar.d.ts +19 -0
  19. package/dist/components/settings/ToggleField.d.ts +12 -0
  20. package/dist/components/toolbox/EditTextBox.d.ts +14 -0
  21. package/dist/components/toolbox/LoadFileTool.d.ts +12 -0
  22. package/dist/components/toolbox/MenuGroup.d.ts +35 -0
  23. package/dist/components/toolbox/PictureUrlInput.d.ts +8 -0
  24. package/dist/components/toolbox/Tool.d.ts +12 -0
  25. package/dist/components/toolbox/Toolbar.d.ts +27 -0
  26. package/dist/components/toolbox/ToolbarGroup.d.ts +18 -0
  27. package/dist/constants/app.d.ts +41 -0
  28. package/dist/constants/icons.d.ts +41 -0
  29. package/dist/constants/loading.d.ts +1 -0
  30. package/dist/constants/picture.d.ts +1 -0
  31. package/dist/constants/shapes.d.ts +8 -0
  32. package/dist/constants/snackbar.d.ts +7 -0
  33. package/dist/constants/style.d.ts +17 -0
  34. package/dist/constants/tools.d.ts +32 -0
  35. package/dist/hooks/useComponent.d.ts +9 -0
  36. package/dist/hooks/useDoubleClick.d.ts +5 -0
  37. package/dist/hooks/useDrag.d.ts +15 -0
  38. package/dist/hooks/useDrawableCanvas.d.ts +37 -0
  39. package/dist/hooks/useKeyboard.d.ts +18 -0
  40. package/dist/hooks/useResizeObserver.d.ts +7 -0
  41. package/dist/hooks/useShapes.d.ts +22 -0
  42. package/dist/hooks/useSnackbar.d.ts +10 -0
  43. package/dist/react-paint.css +1 -0
  44. package/dist/react-paint.js +9109 -0
  45. package/dist/react-paint.umd.cjs +53 -0
  46. package/dist/types/Mode.d.ts +43 -0
  47. package/dist/types/Shapes.d.ts +112 -0
  48. package/dist/types/snackbar.d.ts +7 -0
  49. package/dist/types/tools.d.ts +124 -0
  50. package/dist/types/utils.d.ts +3 -0
  51. package/dist/utils/canvas.d.ts +10 -0
  52. package/dist/utils/data.d.ts +225 -0
  53. package/dist/utils/dom.d.ts +1 -0
  54. package/dist/utils/file.d.ts +10 -0
  55. package/dist/utils/intersect.d.ts +6 -0
  56. package/dist/utils/migration.d.ts +165 -0
  57. package/dist/utils/selection.d.ts +7 -0
  58. package/dist/utils/shapes/brush.d.ts +55 -0
  59. package/dist/utils/shapes/circle.d.ts +13 -0
  60. package/dist/utils/shapes/curve.d.ts +11 -0
  61. package/dist/utils/shapes/default.d.ts +10 -0
  62. package/dist/utils/shapes/ellipse.d.ts +13 -0
  63. package/dist/utils/shapes/grid.d.ts +3 -0
  64. package/dist/utils/shapes/index.d.ts +245 -0
  65. package/dist/utils/shapes/line.d.ts +23 -0
  66. package/dist/utils/shapes/picture.d.ts +6 -0
  67. package/dist/utils/shapes/polygon.d.ts +11 -0
  68. package/dist/utils/shapes/rectangle.d.ts +26 -0
  69. package/dist/utils/shapes/text.d.ts +48 -0
  70. package/dist/utils/shapes/triangle.d.ts +2 -0
  71. package/dist/utils/string.d.ts +3 -0
  72. package/dist/utils/style.d.ts +2 -0
  73. package/dist/utils/toolbar.d.ts +13 -0
  74. package/dist/utils/transform.d.ts +8 -0
  75. package/dist/utils/trigo.d.ts +10 -0
  76. package/package.json +51 -56
  77. package/dist/components/App.js +0 -496
  78. package/dist/components/Canvas.js +0 -194
  79. package/dist/components/common/Button.js +0 -88
  80. package/dist/components/common/Loading.js +0 -57
  81. package/dist/components/common/Modal.js +0 -46
  82. package/dist/components/common/Panel.js +0 -43
  83. package/dist/components/common/Snackbar.js +0 -68
  84. package/dist/components/settings/ColorField.js +0 -125
  85. package/dist/components/settings/DeleteButton.js +0 -37
  86. package/dist/components/settings/FontFamilyField.js +0 -67
  87. package/dist/components/settings/LayoutButton.js +0 -39
  88. package/dist/components/settings/Layouts.js +0 -214
  89. package/dist/components/settings/LineArrowField.js +0 -67
  90. package/dist/components/settings/LineTypeField.js +0 -65
  91. package/dist/components/settings/PointsNumberField.js +0 -45
  92. package/dist/components/settings/RangeField.js +0 -82
  93. package/dist/components/settings/SelectField.js +0 -81
  94. package/dist/components/settings/SettingsBar.js +0 -383
  95. package/dist/components/settings/ToggleField.js +0 -49
  96. package/dist/components/toolbox/EditTextBox.js +0 -138
  97. package/dist/components/toolbox/LoadFileTool.js +0 -58
  98. package/dist/components/toolbox/MenuGroup.js +0 -173
  99. package/dist/components/toolbox/PictureUrlInput.js +0 -68
  100. package/dist/components/toolbox/Tool.js +0 -41
  101. package/dist/components/toolbox/Toolbar.js +0 -203
  102. package/dist/components/toolbox/ToolbarGroup.js +0 -134
  103. package/dist/constants/app.js +0 -51
  104. package/dist/constants/icons.js +0 -88
  105. package/dist/constants/loading.js +0 -8
  106. package/dist/constants/picture.js +0 -8
  107. package/dist/constants/shapes.js +0 -20
  108. package/dist/constants/snackbar.js +0 -15
  109. package/dist/constants/style.js +0 -35
  110. package/dist/constants/tools.js +0 -424
  111. package/dist/hooks/useComponent.js +0 -47
  112. package/dist/hooks/useDoubleClick.js +0 -46
  113. package/dist/hooks/useDrag.js +0 -92
  114. package/dist/hooks/useDrawableCanvas.js +0 -230
  115. package/dist/hooks/useKeyboard.js +0 -142
  116. package/dist/hooks/useResizeObserver.js +0 -42
  117. package/dist/hooks/useShapes.js +0 -184
  118. package/dist/hooks/useSnackbar.js +0 -56
  119. package/dist/styles.css +0 -91
  120. package/dist/types/Mode.js +0 -5
  121. package/dist/types/Shapes.js +0 -5
  122. package/dist/types/snackbar.js +0 -5
  123. package/dist/types/tools.js +0 -5
  124. package/dist/types/utils.js +0 -5
  125. package/dist/utils/canvas.js +0 -49
  126. package/dist/utils/data.js +0 -49
  127. package/dist/utils/dom.js +0 -12
  128. package/dist/utils/file.js +0 -177
  129. package/dist/utils/intersect.js +0 -122
  130. package/dist/utils/migration.js +0 -59
  131. package/dist/utils/selection.js +0 -86
  132. package/dist/utils/shapes/brush.js +0 -135
  133. package/dist/utils/shapes/circle.js +0 -93
  134. package/dist/utils/shapes/curve.js +0 -55
  135. package/dist/utils/shapes/default.js +0 -73
  136. package/dist/utils/shapes/ellipse.js +0 -101
  137. package/dist/utils/shapes/grid.js +0 -36
  138. package/dist/utils/shapes/index.js +0 -341
  139. package/dist/utils/shapes/line.js +0 -179
  140. package/dist/utils/shapes/picture.js +0 -109
  141. package/dist/utils/shapes/polygon.js +0 -69
  142. package/dist/utils/shapes/rectangle.js +0 -100
  143. package/dist/utils/shapes/text.js +0 -128
  144. package/dist/utils/shapes/triangle.js +0 -24
  145. package/dist/utils/string.js +0 -36
  146. package/dist/utils/style.js +0 -46
  147. package/dist/utils/toolbar.js +0 -78
  148. package/dist/utils/transform.js +0 -109
  149. package/dist/utils/trigo.js +0 -42
@@ -1,173 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _fp = _interopRequireDefault(require("lodash/fp"));
11
-
12
- var _react = _interopRequireWildcard(require("react"));
13
-
14
- var _Button = _interopRequireDefault(require("../common/Button"));
15
-
16
- var _Panel = _interopRequireDefault(require("../common/Panel"));
17
-
18
- var _react2 = require("@linaria/react");
19
-
20
- var _Tool = _interopRequireDefault(require("./Tool"));
21
-
22
- var _LoadFileTool = _interopRequireDefault(require("./LoadFileTool"));
23
-
24
- var _icons = require("../../constants/icons");
25
-
26
- var _tools = require("../../constants/tools");
27
-
28
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
-
30
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
-
32
- const StyledPanelContent = /*#__PURE__*/(0, _react2.styled)('div')({
33
- name: "StyledPanelContent",
34
- class: "s1uphjfh"
35
- });
36
- const StyledRelative = /*#__PURE__*/(0, _react2.styled)('div')({
37
- name: "StyledRelative",
38
- class: "s1e5a6k5"
39
- });
40
-
41
- const MenuGroup = _ref => {
42
- var _ref2;
43
-
44
- let {
45
- activeTool,
46
- withActionsInMenu,
47
- hasActionToUndo = false,
48
- hasActionToRedo = false,
49
- hasActionToClear = false,
50
- undoAction,
51
- redoAction,
52
- clearCanvas,
53
- alignment,
54
- group,
55
- vertical = false,
56
- disabled = false,
57
- withLoadAndSave,
58
- withExport,
59
- addPicture: addPictureFromProps,
60
- loadFile: loadFileFromProps,
61
- togglePictureUrlModal,
62
- saveFile,
63
- exportCanvasInFile,
64
- withUploadPicture,
65
- withUrlPicture
66
- } = _ref;
67
- const [isOpen, setIsOpen] = (0, _react.useState)(false);
68
- const [, startTransition] = (0, _react.useTransition)();
69
-
70
- const loadFile = file => {
71
- setIsOpen(false);
72
- loadFileFromProps(file);
73
- };
74
-
75
- const addPicture = async file => {
76
- setIsOpen(false);
77
- await addPictureFromProps(file);
78
- };
79
-
80
- const openPanel = () => {
81
- startTransition(() => {
82
- setIsOpen(true);
83
- });
84
- };
85
-
86
- const isActive = _fp.default.includes(activeTool.type, group === null || group === void 0 ? void 0 : group.tools);
87
-
88
- const groupIcon = (_ref2 = isActive ? activeTool.icon : group.img) !== null && _ref2 !== void 0 ? _ref2 : group.title;
89
- (0, _react.useEffect)(() => {
90
- if (!isOpen) return;
91
-
92
- const closePanel = () => {
93
- setIsOpen(false);
94
- };
95
-
96
- document.addEventListener('click', closePanel);
97
- return () => {
98
- document.removeEventListener('click', closePanel);
99
- };
100
- }, [isOpen]);
101
- const withMenu = withActionsInMenu || withUploadPicture || withUrlPicture || withLoadAndSave || withExport;
102
- return withMenu ? /*#__PURE__*/_react.default.createElement(StyledRelative, null, /*#__PURE__*/_react.default.createElement(_Button.default, {
103
- selected: isActive,
104
- title: group.title,
105
- disabled: disabled,
106
- onClick: openPanel,
107
- icon: groupIcon
108
- }), isOpen && /*#__PURE__*/_react.default.createElement(_Panel.default, {
109
- alignment: alignment,
110
- position: "top"
111
- }, /*#__PURE__*/_react.default.createElement(StyledPanelContent, {
112
- "data-vertical": +vertical
113
- }, withActionsInMenu && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Tool.default, {
114
- withText: true,
115
- type: _tools.UNDO_TOOL,
116
- disabled: disabled || !hasActionToUndo,
117
- img: _tools.UNDO_TOOL.icon,
118
- isActive: activeTool.id === _tools.UNDO_TOOL.id,
119
- setActive: undoAction
120
- }), /*#__PURE__*/_react.default.createElement(_Tool.default, {
121
- withText: true,
122
- type: _tools.REDO_TOOL,
123
- disabled: disabled || !hasActionToRedo,
124
- img: _tools.REDO_TOOL.icon,
125
- isActive: activeTool.id === _tools.REDO_TOOL.id,
126
- setActive: redoAction
127
- }), /*#__PURE__*/_react.default.createElement(_Tool.default, {
128
- withText: true,
129
- type: _tools.CLEAR_TOOL,
130
- disabled: disabled || !hasActionToClear,
131
- img: _tools.CLEAR_TOOL.icon,
132
- isActive: activeTool.id === _tools.CLEAR_TOOL.id,
133
- setActive: clearCanvas
134
- }), (withUploadPicture || withUrlPicture || withLoadAndSave) && /*#__PURE__*/_react.default.createElement("hr", null)), withUploadPicture && /*#__PURE__*/_react.default.createElement(_LoadFileTool.default, {
135
- withText: true,
136
- type: _tools.UPLOAD_PICTURE_TOOL,
137
- disabled: disabled,
138
- loadFile: addPicture,
139
- img: _tools.UPLOAD_PICTURE_TOOL.icon,
140
- accept: "image/png, image/gif, image/jpeg, image/svg+xml"
141
- }), withUrlPicture && /*#__PURE__*/_react.default.createElement(_Button.default, {
142
- disabled: disabled,
143
- selected: false,
144
- onClick: togglePictureUrlModal,
145
- title: "Add picture from URL",
146
- icon: _icons.publicIcon,
147
- children: "Add picture from URL"
148
- }), (withUploadPicture || withUrlPicture) && withLoadAndSave && /*#__PURE__*/_react.default.createElement("hr", null), withLoadAndSave && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_LoadFileTool.default, {
149
- withText: true,
150
- type: _tools.LOAD_TOOL,
151
- disabled: disabled,
152
- loadFile: loadFile,
153
- img: _tools.LOAD_TOOL.icon,
154
- accept: "application/JSON"
155
- }), /*#__PURE__*/_react.default.createElement(_Tool.default, {
156
- withText: true,
157
- disabled: disabled,
158
- type: _tools.SAVE_TOOL,
159
- img: _tools.SAVE_TOOL.icon,
160
- isActive: activeTool.id === _tools.SAVE_TOOL.id,
161
- setActive: saveFile
162
- })), withExport && /*#__PURE__*/_react.default.createElement(_Tool.default, {
163
- withText: true,
164
- disabled: disabled,
165
- type: _tools.EXPORT_TOOL,
166
- img: _tools.EXPORT_TOOL.icon,
167
- isActive: activeTool.id === _tools.EXPORT_TOOL.id,
168
- setActive: exportCanvasInFile
169
- })))) : null;
170
- };
171
-
172
- var _default = MenuGroup;
173
- exports.default = _default;
@@ -1,68 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _react = _interopRequireWildcard(require("react"));
11
-
12
- var _Button = _interopRequireDefault(require("../common/Button"));
13
-
14
- var _Modal = _interopRequireDefault(require("../common/Modal"));
15
-
16
- var _react2 = require("@linaria/react");
17
-
18
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
-
20
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
-
22
- const StyledInputModal = /*#__PURE__*/(0, _react2.styled)(_Modal.default)({
23
- name: "StyledInputModal",
24
- class: "s95bkm9"
25
- });
26
-
27
- const PictureUrlModal = _ref => {
28
- let {
29
- togglePictureUrlModal,
30
- addPicture
31
- } = _ref;
32
- const pictureUrlInputRef = (0, _react.useRef)(null);
33
-
34
- const addPictureFromUrl = async e => {
35
- var _pictureUrlInputRef$c;
36
-
37
- e.preventDefault();
38
- const url = (_pictureUrlInputRef$c = pictureUrlInputRef.current) === null || _pictureUrlInputRef$c === void 0 ? void 0 : _pictureUrlInputRef$c.value;
39
-
40
- if (url) {
41
- await addPicture(url);
42
- togglePictureUrlModal();
43
- }
44
-
45
- return;
46
- };
47
-
48
- (0, _react.useEffect)(() => {
49
- if (!pictureUrlInputRef.current) return;
50
- pictureUrlInputRef.current.focus();
51
- }, []);
52
- return /*#__PURE__*/_react.default.createElement(StyledInputModal, {
53
- onClose: togglePictureUrlModal
54
- }, /*#__PURE__*/_react.default.createElement("form", {
55
- onSubmit: addPictureFromUrl
56
- }, /*#__PURE__*/_react.default.createElement("label", null, "URL\xA0", /*#__PURE__*/_react.default.createElement("input", {
57
- type: "text",
58
- ref: pictureUrlInputRef
59
- })), /*#__PURE__*/_react.default.createElement(_Button.default, {
60
- onClick: togglePictureUrlModal
61
- }, "Annuler"), /*#__PURE__*/_react.default.createElement(_Button.default, {
62
- type: "submit",
63
- selected: true
64
- }, "Ajouter")));
65
- };
66
-
67
- var _default = PictureUrlModal;
68
- exports.default = _default;
@@ -1,41 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _react = _interopRequireDefault(require("react"));
11
-
12
- var _Button = _interopRequireDefault(require("../common/Button"));
13
-
14
- const Tool = _ref => {
15
- var _type$label;
16
-
17
- let {
18
- type,
19
- img,
20
- isActive,
21
- withText = false,
22
- disabled = false,
23
- setActive
24
- } = _ref;
25
-
26
- const handleClick = () => {
27
- setActive(type);
28
- };
29
-
30
- return /*#__PURE__*/_react.default.createElement(_Button.default, {
31
- disabled: disabled,
32
- selected: isActive,
33
- onClick: handleClick,
34
- title: (_type$label = type.label) !== null && _type$label !== void 0 ? _type$label : type.type,
35
- icon: img,
36
- children: withText ? type.label : undefined
37
- });
38
- };
39
-
40
- var _default = Tool;
41
- exports.default = _default;
@@ -1,203 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _icons = require("../../constants/icons");
11
-
12
- var _react = _interopRequireWildcard(require("react"));
13
-
14
- var _react2 = require("@linaria/react");
15
-
16
- var _Button = _interopRequireDefault(require("../common/Button"));
17
-
18
- var _toolbar = require("../../utils/toolbar");
19
-
20
- var _ToolbarGroup = _interopRequireDefault(require("./ToolbarGroup"));
21
-
22
- var _MenuGroup = _interopRequireDefault(require("./MenuGroup"));
23
-
24
- var _Tool = _interopRequireDefault(require("./Tool"));
25
-
26
- var _Modal = _interopRequireDefault(require("../common/Modal"));
27
-
28
- var _PictureUrlInput = _interopRequireDefault(require("./PictureUrlInput"));
29
-
30
- var _fp = _interopRequireDefault(require("lodash/fp"));
31
-
32
- var _tools = require("../../constants/tools");
33
-
34
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
35
-
36
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
37
-
38
- const TOOL_WIDTH = 40;
39
- const StyledShrinkableTools = /*#__PURE__*/(0, _react2.styled)('div')({
40
- name: "StyledShrinkableTools",
41
- class: "so6hnjf"
42
- });
43
- const StyledToolbox = /*#__PURE__*/(0, _react2.styled)('div')({
44
- name: "StyledToolbox",
45
- class: "s1c1dllr"
46
- });
47
- const StyledToolsModal = /*#__PURE__*/(0, _react2.styled)(_Modal.default)({
48
- name: "StyledToolsModal",
49
- class: "s1g032mh"
50
- });
51
- const TOOLBAR_STRUCTURE = [{
52
- title: 'brush',
53
- toolsType: ['brush'],
54
- vertical: false
55
- }, {
56
- title: 'lines',
57
- toolsType: ['line', 'curve', 'polygon'],
58
- vertical: false
59
- }, {
60
- title: 'shapes',
61
- toolsType: ['rect', 'square', 'circle', 'ellipse'],
62
- vertical: false
63
- }, 'text'];
64
-
65
- const Toolbar = _ref => {
66
- let {
67
- width,
68
- disabled = false,
69
- activeTool,
70
- hasActionToUndo = false,
71
- hasActionToRedo = false,
72
- hasActionToClear = false,
73
- withLoadAndSave,
74
- withExport,
75
- clearCanvas,
76
- setActiveTool: setActiveToolFromProps,
77
- undoAction,
78
- redoAction,
79
- addPicture,
80
- loadFile,
81
- saveFile,
82
- exportCanvasInFile,
83
- availableTools,
84
- withUrlPicture,
85
- withUploadPicture
86
- } = _ref;
87
- const currentStructure = (0, _toolbar.getCurrentStructure)(availableTools, TOOLBAR_STRUCTURE);
88
- const fullToolbarSize = (5 + currentStructure.length) * TOOL_WIDTH;
89
- const withMenuToolbarSize = (2 + currentStructure.length) * TOOL_WIDTH;
90
- const [isMenuOpen, setIsMenuOpen] = (0, _react.useState)(false);
91
- const [isPictureUrlModalOpen, setIsPictureUrlModalOpen] = (0, _react.useState)(false);
92
- const [actionsInMenu, setActionsInMenu] = (0, _react.useState)(width < fullToolbarSize);
93
- const [toolsInMenu, setToolsInMenu] = (0, _react.useState)(width < withMenuToolbarSize);
94
-
95
- const toggleTools = () => {
96
- setIsMenuOpen(prev => !prev);
97
- };
98
-
99
- const openPictureUrlModal = () => {
100
- setIsPictureUrlModalOpen(true);
101
- };
102
-
103
- const togglePictureUrlModal = () => {
104
- setIsPictureUrlModalOpen(prev => !prev);
105
- };
106
-
107
- const setActiveTool = tool => {
108
- setActiveToolFromProps(tool);
109
- setIsMenuOpen(false);
110
- };
111
-
112
- const setActiveToolFromId = toolId => {
113
- var _availableTools$find;
114
-
115
- setActiveTool((_availableTools$find = availableTools.find(tool => tool.id === toolId)) !== null && _availableTools$find !== void 0 ? _availableTools$find : activeTool);
116
- };
117
-
118
- (0, _react.useEffect)(() => {
119
- setActionsInMenu(width < fullToolbarSize);
120
- setToolsInMenu(width < withMenuToolbarSize);
121
- }, [width, fullToolbarSize, withMenuToolbarSize]);
122
- const isAnyToolSelected = _fp.default.find({
123
- type: activeTool
124
- }, availableTools) !== undefined;
125
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(StyledToolbox, null, /*#__PURE__*/_react.default.createElement(StyledShrinkableTools, null, /*#__PURE__*/_react.default.createElement(_Tool.default, {
126
- type: _tools.SELECTION_TOOL,
127
- disabled: disabled,
128
- img: _tools.SELECTION_TOOL.icon,
129
- isActive: activeTool.id === _tools.SELECTION_TOOL.id,
130
- setActive: setActiveTool
131
- }), toolsInMenu ? /*#__PURE__*/_react.default.createElement(_Button.default, {
132
- disabled: disabled,
133
- onClick: toggleTools,
134
- title: "Toggle tools",
135
- icon: _icons.shapesIcon,
136
- selected: isAnyToolSelected
137
- }) : currentStructure.map((group, i) => /*#__PURE__*/_react.default.createElement(_ToolbarGroup.default, {
138
- disabled: disabled,
139
- key: i,
140
- activeTool: activeTool,
141
- group: group,
142
- setActiveToolFromId: setActiveToolFromId
143
- }))), !actionsInMenu && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Tool.default, {
144
- type: _tools.UNDO_TOOL,
145
- disabled: disabled || !hasActionToUndo,
146
- img: _tools.UNDO_TOOL.icon,
147
- isActive: activeTool.id === _tools.UNDO_TOOL.id,
148
- setActive: undoAction
149
- }), /*#__PURE__*/_react.default.createElement(_Tool.default, {
150
- type: _tools.REDO_TOOL,
151
- disabled: disabled || !hasActionToRedo,
152
- img: _tools.REDO_TOOL.icon,
153
- isActive: activeTool.id === _tools.REDO_TOOL.id,
154
- setActive: redoAction
155
- }), /*#__PURE__*/_react.default.createElement(_Tool.default, {
156
- type: _tools.CLEAR_TOOL,
157
- disabled: disabled || !hasActionToClear,
158
- img: _tools.CLEAR_TOOL.icon,
159
- isActive: activeTool.id === _tools.CLEAR_TOOL.id,
160
- setActive: clearCanvas
161
- })), /*#__PURE__*/_react.default.createElement(_MenuGroup.default, {
162
- withActionsInMenu: actionsInMenu,
163
- disabled: disabled,
164
- vertical: true,
165
- alignment: "right",
166
- group: {
167
- title: 'Menu',
168
- img: _icons.menuIcon
169
- },
170
- activeTool: activeTool,
171
- addPicture: addPicture,
172
- loadFile: loadFile,
173
- saveFile: saveFile,
174
- togglePictureUrlModal: openPictureUrlModal,
175
- exportCanvasInFile: exportCanvasInFile,
176
- withUploadPicture: withUploadPicture,
177
- withUrlPicture: withUrlPicture,
178
- withLoadAndSave: withLoadAndSave,
179
- withExport: withExport,
180
- hasActionToUndo: hasActionToUndo,
181
- hasActionToRedo: hasActionToRedo,
182
- hasActionToClear: hasActionToClear,
183
- undoAction: undoAction,
184
- redoAction: redoAction,
185
- clearCanvas: clearCanvas
186
- })), isMenuOpen && /*#__PURE__*/_react.default.createElement(StyledToolsModal, {
187
- onClose: toggleTools
188
- }, availableTools.map((toolType, index) => toolType.type === 'picture' ? null : /*#__PURE__*/_react.default.createElement(_Tool.default, {
189
- disabled: disabled,
190
- key: index,
191
- type: toolType,
192
- img: toolType.icon,
193
- withText: false,
194
- isActive: activeTool.id === toolType.id,
195
- setActive: setActiveTool
196
- }))), isPictureUrlModalOpen && /*#__PURE__*/_react.default.createElement(_PictureUrlInput.default, {
197
- togglePictureUrlModal: togglePictureUrlModal,
198
- addPicture: addPicture
199
- }));
200
- };
201
-
202
- var _default = Toolbar;
203
- exports.default = _default;
@@ -1,134 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _fp = _interopRequireDefault(require("lodash/fp"));
11
-
12
- var _react = _interopRequireWildcard(require("react"));
13
-
14
- var _Button = _interopRequireDefault(require("../common/Button"));
15
-
16
- var _Panel = _interopRequireDefault(require("../common/Panel"));
17
-
18
- var _react2 = require("@linaria/react");
19
-
20
- var _Tool = _interopRequireDefault(require("./Tool"));
21
-
22
- var _dom = require("../../utils/dom");
23
-
24
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
-
26
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
-
28
- const StyledPanelContent = /*#__PURE__*/(0, _react2.styled)('div')({
29
- name: "StyledPanelContent",
30
- class: "s1bvz4xj"
31
- });
32
- const StyledRelative = /*#__PURE__*/(0, _react2.styled)('div')({
33
- name: "StyledRelative",
34
- class: "siejlch"
35
- });
36
-
37
- const ToolbarGroup = _ref => {
38
- var _group$toolsType, _ref2;
39
-
40
- let {
41
- activeTool,
42
- alignment,
43
- group,
44
- disabled = false,
45
- setActiveToolFromId
46
- } = _ref;
47
- const panelRef = (0, _react.useRef)(null);
48
- const [isOpen, setIsOpen] = (0, _react.useState)(false);
49
- const [, startTransition] = (0, _react.useTransition)();
50
- const [localActiveTool, setLocalActiveTool] = (0, _react.useState)(undefined);
51
-
52
- const setActiveTool = tool => {
53
- setLocalActiveTool(tool);
54
- setActiveToolFromId(tool.id);
55
- };
56
-
57
- (0, _react.useEffect)(() => {
58
- if (!isOpen) return;
59
-
60
- const closePanel = event => {
61
- const isClickInsideToolbarGroup = (0, _dom.isEventInsideNode)(event, panelRef.current);
62
- !isClickInsideToolbarGroup && setIsOpen(false);
63
- };
64
-
65
- document.addEventListener('mousedown', closePanel, {
66
- passive: false
67
- });
68
- document.addEventListener('touchstart', closePanel, {
69
- passive: false
70
- });
71
- return () => {
72
- document.removeEventListener('mousedown', closePanel);
73
- document.removeEventListener('touchstart', closePanel);
74
- };
75
- }, [isOpen]);
76
-
77
- if ('type' in group) {
78
- return /*#__PURE__*/_react.default.createElement(_Tool.default, {
79
- disabled: disabled,
80
- type: group,
81
- img: group.icon,
82
- isActive: activeTool.id === group.id,
83
- setActive: setActiveTool
84
- });
85
- }
86
-
87
- if (_fp.default.isEmpty(group.toolsType)) return null;
88
-
89
- if (((_group$toolsType = group.toolsType) === null || _group$toolsType === void 0 ? void 0 : _group$toolsType.length) === 1) {
90
- return /*#__PURE__*/_react.default.createElement(_Tool.default, {
91
- disabled: disabled,
92
- type: group.toolsType[0],
93
- img: group.toolsType[0].icon,
94
- isActive: activeTool.id === group.toolsType[0].id,
95
- setActive: setActiveTool
96
- });
97
- }
98
-
99
- const isActive = _fp.default.find({
100
- type: activeTool.type
101
- }, group === null || group === void 0 ? void 0 : group.toolsType) !== undefined;
102
- const groupIcon = (_ref2 = localActiveTool ? localActiveTool.icon : group.toolsType && group.toolsType[0] && group.toolsType[0].icon) !== null && _ref2 !== void 0 ? _ref2 : group.title;
103
-
104
- const openPanel = () => {
105
- if (localActiveTool) setActiveToolFromId(localActiveTool.id);else group.toolsType && group.toolsType[0] && setActiveTool(group.toolsType[0]);
106
- startTransition(() => {
107
- setIsOpen(true);
108
- });
109
- };
110
-
111
- return /*#__PURE__*/_react.default.createElement(StyledRelative, null, /*#__PURE__*/_react.default.createElement(_Button.default, {
112
- selected: isActive,
113
- title: group.title,
114
- disabled: disabled,
115
- onClick: openPanel,
116
- icon: groupIcon
117
- }), isOpen && /*#__PURE__*/_react.default.createElement(_Panel.default, {
118
- alignment: alignment,
119
- position: "top"
120
- }, /*#__PURE__*/_react.default.createElement(StyledPanelContent, {
121
- "data-vertical": +group.vertical,
122
- ref: panelRef
123
- }, group.toolsType.map((toolType, i) => /*#__PURE__*/_react.default.createElement(_Tool.default, {
124
- disabled: disabled,
125
- key: i,
126
- type: toolType,
127
- img: toolType.icon,
128
- isActive: activeTool.id === toolType.id,
129
- setActive: setActiveTool
130
- })))));
131
- };
132
-
133
- var _default = ToolbarGroup;
134
- exports.default = _default;
@@ -1,51 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.GRID_SMALL = exports.GRID_NONE = exports.GRID_MEDIUM = exports.GRID_LARGE = exports.DEFAULT_OPTIONS = exports.APP_NAME = void 0;
7
-
8
- var _shapes = require("./shapes");
9
-
10
- var _tools = require("./tools");
11
-
12
- const APP_NAME = 'react_paint';
13
- exports.APP_NAME = APP_NAME;
14
- const GRID_NONE = 0;
15
- exports.GRID_NONE = GRID_NONE;
16
- const GRID_SMALL = 1;
17
- exports.GRID_SMALL = GRID_SMALL;
18
- const GRID_MEDIUM = 2;
19
- exports.GRID_MEDIUM = GRID_MEDIUM;
20
- const GRID_LARGE = 3;
21
- exports.GRID_LARGE = GRID_LARGE;
22
- const DEFAULT_OPTIONS = {
23
- layersManipulation: true,
24
- grid: GRID_NONE,
25
- canGrow: false,
26
- canShrink: true,
27
- withExport: true,
28
- withLoadAndSave: true,
29
- withUploadPicture: true,
30
- withUrlPicture: false,
31
- availableTools: _tools.DEFAULT_SHAPE_TOOLS,
32
- clearCallback: 'empty',
33
- uiStyle: {
34
- toolbarBackgroundColor: 'white',
35
- dividerColor: '#36418129',
36
- fontRadius: 8,
37
- fontDisabledColor: '#3641812b',
38
- fontDisabledBackgroundColor: 'transparent',
39
- fontColor: '#364181',
40
- fontBackgroundColor: 'transparent',
41
- fontSelectedColor: 'white',
42
- fontSelectedBackgroundColor: '#364181',
43
- fontHoverColor: '#364181',
44
- fontHoverBackgroundColor: '#afd8d8',
45
- canvasBackgroundColor: 'white',
46
- canvasSelectionColor: _shapes.SELECTION_DEFAULT_COLOR,
47
- canvasSelectionWidth: _shapes.SELECTION_DEFAULT_WIDTH,
48
- canvasSelectionPadding: _shapes.SELECTION_DEFAULT_PADDING
49
- }
50
- };
51
- exports.DEFAULT_OPTIONS = DEFAULT_OPTIONS;