@yorab/react-paint 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Changelog.md +26 -0
- package/README.md +99 -0
- package/dist/components/App.d.ts +20 -0
- package/dist/components/App.js +533 -0
- package/dist/components/Canvas.d.ts +28 -0
- package/dist/components/Canvas.js +188 -0
- package/dist/components/common/Button.d.ts +14 -0
- package/dist/components/common/Button.js +97 -0
- package/dist/components/common/Loading.d.ts +6 -0
- package/dist/components/common/Loading.js +66 -0
- package/dist/components/common/Modal.d.ts +8 -0
- package/dist/components/common/Modal.js +41 -0
- package/dist/components/common/Panel.d.ts +10 -0
- package/dist/components/common/Panel.js +48 -0
- package/dist/components/common/Snackbar.d.ts +7 -0
- package/dist/components/common/Snackbar.js +75 -0
- package/dist/components/settings/ColorField.d.ts +12 -0
- package/dist/components/settings/ColorField.js +128 -0
- package/dist/components/settings/DeleteButton.d.ts +9 -0
- package/dist/components/settings/DeleteButton.js +36 -0
- package/dist/components/settings/FontFamilyField.d.ts +10 -0
- package/dist/components/settings/FontFamilyField.js +57 -0
- package/dist/components/settings/LayoutButton.d.ts +8 -0
- package/dist/components/settings/LayoutButton.js +37 -0
- package/dist/components/settings/Layouts.d.ts +18 -0
- package/dist/components/settings/Layouts.js +218 -0
- package/dist/components/settings/LineArrowField.d.ts +10 -0
- package/dist/components/settings/LineArrowField.js +59 -0
- package/dist/components/settings/LineTypeField.d.ts +14 -0
- package/dist/components/settings/LineTypeField.js +57 -0
- package/dist/components/settings/PointsNumberField.d.ts +11 -0
- package/dist/components/settings/PointsNumberField.js +51 -0
- package/dist/components/settings/RangeField.d.ts +16 -0
- package/dist/components/settings/RangeField.js +90 -0
- package/dist/components/settings/SelectField.d.ts +16 -0
- package/dist/components/settings/SelectField.js +82 -0
- package/dist/components/settings/SettingsBar.d.ts +16 -0
- package/dist/components/settings/SettingsBar.js +262 -0
- package/dist/components/toolbox/EditTextBox.d.ts +10 -0
- package/dist/components/toolbox/EditTextBox.js +89 -0
- package/dist/components/toolbox/LoadFileTool.d.ts +11 -0
- package/dist/components/toolbox/LoadFileTool.js +58 -0
- package/dist/components/toolbox/MenuGroup.d.ts +23 -0
- package/dist/components/toolbox/MenuGroup.js +173 -0
- package/dist/components/toolbox/PictureUrlInput.d.ts +7 -0
- package/dist/components/toolbox/PictureUrlInput.js +96 -0
- package/dist/components/toolbox/Tool.d.ts +13 -0
- package/dist/components/toolbox/Tool.js +41 -0
- package/dist/components/toolbox/Toolbar.d.ts +20 -0
- package/dist/components/toolbox/Toolbar.js +205 -0
- package/dist/components/toolbox/ToolbarGroup.d.ts +18 -0
- package/dist/components/toolbox/ToolbarGroup.js +139 -0
- package/dist/constants/draw.d.ts +2 -0
- package/dist/constants/draw.js +10 -0
- package/dist/constants/icons.d.ts +36 -0
- package/dist/constants/icons.js +80 -0
- package/dist/constants/shapes.d.ts +5 -0
- package/dist/constants/shapes.js +14 -0
- package/dist/constants/snackbar.d.ts +11 -0
- package/dist/constants/snackbar.js +23 -0
- package/dist/constants/style.d.ts +12 -0
- package/dist/constants/style.js +30 -0
- package/dist/hooks/useComponent.d.ts +9 -0
- package/dist/hooks/useComponent.js +48 -0
- package/dist/hooks/useDrag.d.ts +15 -0
- package/dist/hooks/useDrag.js +100 -0
- package/dist/hooks/useDrawableCanvas.d.ts +30 -0
- package/dist/hooks/useDrawableCanvas.js +250 -0
- package/dist/hooks/useKeyboard.d.ts +15 -0
- package/dist/hooks/useKeyboard.js +123 -0
- package/dist/hooks/useShapes.d.ts +22 -0
- package/dist/hooks/useShapes.js +229 -0
- package/dist/hooks/useSnackbar.d.ts +16 -0
- package/dist/hooks/useSnackbar.js +86 -0
- package/dist/schemas/drawableShape.json +1021 -0
- package/dist/styles.css +88 -0
- package/dist/types/Mode.d.ts +51 -0
- package/dist/types/Mode.js +17 -0
- package/dist/types/Shapes.d.ts +122 -0
- package/dist/types/Shapes.js +35 -0
- package/dist/types/keyboard.d.ts +15 -0
- package/dist/types/keyboard.js +28 -0
- package/dist/utils/data.d.ts +4 -0
- package/dist/utils/data.js +178 -0
- package/dist/utils/draw.d.ts +18 -0
- package/dist/utils/draw.js +422 -0
- package/dist/utils/file.d.ts +33 -0
- package/dist/utils/file.js +220 -0
- package/dist/utils/intersect.d.ts +8 -0
- package/dist/utils/intersect.js +194 -0
- package/dist/utils/selection.d.ts +7 -0
- package/dist/utils/selection.js +88 -0
- package/dist/utils/shapeData.d.ts +5 -0
- package/dist/utils/shapeData.js +178 -0
- package/dist/utils/string.d.ts +3 -0
- package/dist/utils/string.js +42 -0
- package/dist/utils/style.d.ts +2 -0
- package/dist/utils/style.js +46 -0
- package/dist/utils/toolbar.d.ts +12 -0
- package/dist/utils/toolbar.js +37 -0
- package/dist/utils/transform.d.ts +271 -0
- package/dist/utils/transform.js +371 -0
- package/package.json +79 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports["default"] = void 0;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _fp = _interopRequireDefault(require("lodash/fp"));
|
|
15
|
+
|
|
16
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
17
|
+
|
|
18
|
+
var _react2 = require("@linaria/react");
|
|
19
|
+
|
|
20
|
+
var _Button = _interopRequireDefault(require("../common/Button"));
|
|
21
|
+
|
|
22
|
+
var _Panel = _interopRequireDefault(require("../common/Panel"));
|
|
23
|
+
|
|
24
|
+
var _style = require("../../constants/style");
|
|
25
|
+
|
|
26
|
+
var _icons = require("../../constants/icons");
|
|
27
|
+
|
|
28
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(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
|
+
var StyledColor = /*#__PURE__*/(0, _react2.styled)("div")({
|
|
33
|
+
name: "StyledColor",
|
|
34
|
+
"class": "snh2jyk",
|
|
35
|
+
vars: {
|
|
36
|
+
"snh2jyk-0": [function (_ref) {
|
|
37
|
+
var color = _ref.color;
|
|
38
|
+
return color;
|
|
39
|
+
}]
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
var StyledCustomColor = /*#__PURE__*/(0, _react2.styled)("div")({
|
|
43
|
+
name: "StyledCustomColor",
|
|
44
|
+
"class": "sfm1cqx",
|
|
45
|
+
vars: {
|
|
46
|
+
"sfm1cqx-0": [function (_ref2) {
|
|
47
|
+
var color = _ref2.color;
|
|
48
|
+
return color;
|
|
49
|
+
}]
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
var StyledColorButton = /*#__PURE__*/(0, _react2.styled)(_Button["default"])({
|
|
53
|
+
name: "StyledColorButton",
|
|
54
|
+
"class": "sttf061"
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
var ColorField = function ColorField(_ref3) {
|
|
58
|
+
var selectedSettings = _ref3.selectedSettings,
|
|
59
|
+
setSelectedSettings = _ref3.setSelectedSettings,
|
|
60
|
+
_ref3$title = _ref3.title,
|
|
61
|
+
title = _ref3$title === void 0 ? 'Choisissez une couleur' : _ref3$title,
|
|
62
|
+
_ref3$disabled = _ref3.disabled,
|
|
63
|
+
disabled = _ref3$disabled === void 0 ? false : _ref3$disabled,
|
|
64
|
+
field = _ref3.field,
|
|
65
|
+
_ref3$value = _ref3.value,
|
|
66
|
+
value = _ref3$value === void 0 ? '' : _ref3$value,
|
|
67
|
+
valueChanged = _ref3.valueChanged;
|
|
68
|
+
|
|
69
|
+
var _useState = (0, _react.useState)(_fp["default"].uniqueId('settings_')),
|
|
70
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 1),
|
|
71
|
+
customKey = _useState2[0];
|
|
72
|
+
|
|
73
|
+
var handleChange = function handleChange(event) {
|
|
74
|
+
var parsedValue = _fp["default"].toNumber(event.target.value);
|
|
75
|
+
|
|
76
|
+
valueChanged(field, _fp["default"].isNaN(parsedValue) ? event.target.value : parsedValue);
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
var handleClick = function handleClick(value) {
|
|
80
|
+
valueChanged(field, value);
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
var togglePanel = function togglePanel() {
|
|
84
|
+
setSelectedSettings(function (prev) {
|
|
85
|
+
return prev === customKey ? undefined : customKey;
|
|
86
|
+
});
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
var isPanelVisible = selectedSettings === customKey;
|
|
90
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
91
|
+
selected: isPanelVisible,
|
|
92
|
+
title: title,
|
|
93
|
+
disabled: disabled,
|
|
94
|
+
onClick: togglePanel
|
|
95
|
+
}, /*#__PURE__*/_react["default"].createElement(StyledColor, {
|
|
96
|
+
color: value === 'transparent' ? "url('data:image/svg+xml,".concat(_icons.encodedTransparentIcon, "')") : value
|
|
97
|
+
})), isPanelVisible && /*#__PURE__*/_react["default"].createElement(_Panel["default"], {
|
|
98
|
+
title: title,
|
|
99
|
+
alignment: "left"
|
|
100
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, _style.STYLE_COLORS.map(function (color, index) {
|
|
101
|
+
return /*#__PURE__*/_react["default"].createElement(StyledColorButton, {
|
|
102
|
+
title: color,
|
|
103
|
+
key: index,
|
|
104
|
+
selected: color === value,
|
|
105
|
+
color: color,
|
|
106
|
+
onClick: function onClick() {
|
|
107
|
+
return handleClick(color);
|
|
108
|
+
}
|
|
109
|
+
}, /*#__PURE__*/_react["default"].createElement(StyledColor, {
|
|
110
|
+
color: color === 'transparent' ? "url('data:image/svg+xml,".concat(_icons.encodedTransparentIcon, "')") : color
|
|
111
|
+
}));
|
|
112
|
+
}), /*#__PURE__*/_react["default"].createElement(StyledColorButton, {
|
|
113
|
+
type: "color",
|
|
114
|
+
title: "Custom color",
|
|
115
|
+
selected: !_fp["default"].includes(value, _style.STYLE_COLORS),
|
|
116
|
+
value: value,
|
|
117
|
+
onChange: handleChange
|
|
118
|
+
}, /*#__PURE__*/_react["default"].createElement(StyledCustomColor, {
|
|
119
|
+
color: _fp["default"].includes(value, _style.STYLE_COLORS) ? 'black' : value
|
|
120
|
+
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
121
|
+
dangerouslySetInnerHTML: {
|
|
122
|
+
__html: _icons.paletteIcon
|
|
123
|
+
}
|
|
124
|
+
}))))));
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
var _default = ColorField;
|
|
128
|
+
exports["default"] = _default;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { DrawableShape } from 'types/Shapes';
|
|
3
|
+
declare type DeleteShapeButtonType = {
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
selectedShape: DrawableShape;
|
|
6
|
+
removeShape: (shape: DrawableShape) => void;
|
|
7
|
+
};
|
|
8
|
+
declare const DeleteButton: ({ disabled, selectedShape, removeShape }: DeleteShapeButtonType) => JSX.Element;
|
|
9
|
+
export default DeleteButton;
|
|
@@ -0,0 +1,36 @@
|
|
|
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 _icons = require("../../constants/icons");
|
|
13
|
+
|
|
14
|
+
var _Button = _interopRequireDefault(require("../common/Button"));
|
|
15
|
+
|
|
16
|
+
var DeleteButton = function DeleteButton(_ref) {
|
|
17
|
+
var _ref$disabled = _ref.disabled,
|
|
18
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
19
|
+
selectedShape = _ref.selectedShape,
|
|
20
|
+
removeShape = _ref.removeShape;
|
|
21
|
+
|
|
22
|
+
var handleRemove = function handleRemove() {
|
|
23
|
+
removeShape(selectedShape);
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
return /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
27
|
+
title: "Delete",
|
|
28
|
+
disabled: disabled,
|
|
29
|
+
"data-disabled": +disabled,
|
|
30
|
+
onClick: handleRemove,
|
|
31
|
+
icon: _icons.trashIcon
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
var _default = DeleteButton;
|
|
36
|
+
exports["default"] = _default;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare type FontFamilyFieldType = {
|
|
3
|
+
selectedSettings: string | undefined;
|
|
4
|
+
setSelectedSettings: React.Dispatch<React.SetStateAction<string | undefined>>;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
defaultValue?: number | string | undefined;
|
|
7
|
+
valueChanged: (field: string, value: string | number) => void;
|
|
8
|
+
};
|
|
9
|
+
declare const FontFamilyField: ({ selectedSettings, setSelectedSettings, disabled, defaultValue, valueChanged }: FontFamilyFieldType) => JSX.Element;
|
|
10
|
+
export default FontFamilyField;
|
|
@@ -0,0 +1,57 @@
|
|
|
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 _SelectField = _interopRequireDefault(require("./SelectField"));
|
|
13
|
+
|
|
14
|
+
var _style = require("../../constants/style");
|
|
15
|
+
|
|
16
|
+
var _react2 = require("@linaria/react");
|
|
17
|
+
|
|
18
|
+
var StyledOption = /*#__PURE__*/(0, _react2.styled)("span")({
|
|
19
|
+
name: "StyledOption",
|
|
20
|
+
"class": "smpmxx5",
|
|
21
|
+
vars: {
|
|
22
|
+
"smpmxx5-0": [function (_ref) {
|
|
23
|
+
var family = _ref.family;
|
|
24
|
+
return family;
|
|
25
|
+
}]
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
var FontFamilyOption = function FontFamilyOption(_ref2) {
|
|
30
|
+
var children = _ref2.children;
|
|
31
|
+
return /*#__PURE__*/_react["default"].createElement(StyledOption, {
|
|
32
|
+
family: children
|
|
33
|
+
}, children);
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
var FontFamilyField = function FontFamilyField(_ref3) {
|
|
37
|
+
var selectedSettings = _ref3.selectedSettings,
|
|
38
|
+
setSelectedSettings = _ref3.setSelectedSettings,
|
|
39
|
+
_ref3$disabled = _ref3.disabled,
|
|
40
|
+
disabled = _ref3$disabled === void 0 ? false : _ref3$disabled,
|
|
41
|
+
defaultValue = _ref3.defaultValue,
|
|
42
|
+
valueChanged = _ref3.valueChanged;
|
|
43
|
+
return /*#__PURE__*/_react["default"].createElement(_SelectField["default"], {
|
|
44
|
+
selectedSettings: selectedSettings,
|
|
45
|
+
setSelectedSettings: setSelectedSettings,
|
|
46
|
+
CustomOption: FontFamilyOption,
|
|
47
|
+
title: "Font",
|
|
48
|
+
disabled: disabled,
|
|
49
|
+
field: "style.fontFamily",
|
|
50
|
+
values: _style.STYLE_FONTS,
|
|
51
|
+
defaultValue: defaultValue,
|
|
52
|
+
valueChanged: valueChanged
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
var _default = FontFamilyField;
|
|
57
|
+
exports["default"] = _default;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
declare type LayoutButtonType = {
|
|
3
|
+
disabled: boolean;
|
|
4
|
+
withLayouts?: 'always' | 'never' | 'visible' | 'hidden';
|
|
5
|
+
toggleLayoutPanel: () => void;
|
|
6
|
+
};
|
|
7
|
+
declare const LayoutButton: ({ withLayouts, disabled, toggleLayoutPanel }: LayoutButtonType) => JSX.Element;
|
|
8
|
+
export default LayoutButton;
|
|
@@ -0,0 +1,37 @@
|
|
|
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 _react2 = require("@linaria/react");
|
|
13
|
+
|
|
14
|
+
var _icons = require("../../constants/icons");
|
|
15
|
+
|
|
16
|
+
var _Button = _interopRequireDefault(require("../common/Button"));
|
|
17
|
+
|
|
18
|
+
var StyleToggleLayoutButton = /*#__PURE__*/(0, _react2.styled)(_Button["default"])({
|
|
19
|
+
name: "StyleToggleLayoutButton",
|
|
20
|
+
"class": "sj7hhjx"
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
var LayoutButton = function LayoutButton(_ref) {
|
|
24
|
+
var withLayouts = _ref.withLayouts,
|
|
25
|
+
disabled = _ref.disabled,
|
|
26
|
+
toggleLayoutPanel = _ref.toggleLayoutPanel;
|
|
27
|
+
return /*#__PURE__*/_react["default"].createElement(StyleToggleLayoutButton, {
|
|
28
|
+
title: "Toggle layout",
|
|
29
|
+
"data-hidden": +(withLayouts === 'always' || withLayouts === 'never'),
|
|
30
|
+
disabled: disabled,
|
|
31
|
+
onClick: toggleLayoutPanel,
|
|
32
|
+
icon: _icons.layersIcon
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
var _default = LayoutButton;
|
|
37
|
+
exports["default"] = _default;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { DrawableShape } from 'types/Shapes';
|
|
3
|
+
declare type LayoutsType = {
|
|
4
|
+
withGrid: boolean;
|
|
5
|
+
setWithGrid: React.Dispatch<React.SetStateAction<boolean>>;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
shapes: DrawableShape[];
|
|
8
|
+
removeShape: (shape: DrawableShape) => void;
|
|
9
|
+
toggleShapeVisibility: (shape: DrawableShape) => void;
|
|
10
|
+
toggleShapeLock: (shape: DrawableShape) => void;
|
|
11
|
+
selectedShape: DrawableShape | undefined;
|
|
12
|
+
selectShape: (shape: DrawableShape) => void;
|
|
13
|
+
moveShapes: (firstShapeId: string, lastShapeId: string) => void;
|
|
14
|
+
withLayouts?: 'always' | 'never' | 'visible' | 'hidden';
|
|
15
|
+
isLayoutPanelShown: boolean;
|
|
16
|
+
};
|
|
17
|
+
declare const Layouts: ({ withGrid, setWithGrid, disabled, shapes, removeShape, toggleShapeVisibility, toggleShapeLock, selectedShape, moveShapes, selectShape, withLayouts, isLayoutPanelShown }: LayoutsType) => JSX.Element | null;
|
|
18
|
+
export default Layouts;
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports["default"] = void 0;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _fp = _interopRequireDefault(require("lodash/fp"));
|
|
17
|
+
|
|
18
|
+
var _useDrag2 = _interopRequireDefault(require("../../hooks/useDrag"));
|
|
19
|
+
|
|
20
|
+
var _icons = require("../../constants/icons");
|
|
21
|
+
|
|
22
|
+
var _style = require("../../utils/style");
|
|
23
|
+
|
|
24
|
+
var _react2 = require("@linaria/react");
|
|
25
|
+
|
|
26
|
+
var _Button = _interopRequireDefault(require("../common/Button"));
|
|
27
|
+
|
|
28
|
+
var _Panel = _interopRequireDefault(require("../common/Panel"));
|
|
29
|
+
|
|
30
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
31
|
+
|
|
32
|
+
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; }
|
|
33
|
+
|
|
34
|
+
var StyledLayouts = /*#__PURE__*/(0, _react2.styled)("div")({
|
|
35
|
+
name: "StyledLayouts",
|
|
36
|
+
"class": "su3a8bs"
|
|
37
|
+
});
|
|
38
|
+
var StyledLayout = /*#__PURE__*/(0, _react2.styled)("div")({
|
|
39
|
+
name: "StyledLayout",
|
|
40
|
+
"class": "szboplp"
|
|
41
|
+
});
|
|
42
|
+
var StyledVisibleButton = /*#__PURE__*/(0, _react2.styled)(_Button["default"])({
|
|
43
|
+
name: "StyledVisibleButton",
|
|
44
|
+
"class": "sff5xt"
|
|
45
|
+
});
|
|
46
|
+
var StyledLockedButton = /*#__PURE__*/(0, _react2.styled)(_Button["default"])({
|
|
47
|
+
name: "StyledLockedButton",
|
|
48
|
+
"class": "sj3bift"
|
|
49
|
+
});
|
|
50
|
+
var StyledGridButton = /*#__PURE__*/(0, _react2.styled)(_Button["default"])({
|
|
51
|
+
name: "StyledGridButton",
|
|
52
|
+
"class": "s10ip0a4"
|
|
53
|
+
});
|
|
54
|
+
var StyledSeparator = /*#__PURE__*/(0, _react2.styled)("div")({
|
|
55
|
+
name: "StyledSeparator",
|
|
56
|
+
"class": "s1j9uq9o"
|
|
57
|
+
});
|
|
58
|
+
var StyledPanelLayouts = /*#__PURE__*/(0, _react2.styled)(_Panel["default"])({
|
|
59
|
+
name: "StyledPanelLayouts",
|
|
60
|
+
"class": "s156ddbb"
|
|
61
|
+
});
|
|
62
|
+
var StyledScrollingContent = /*#__PURE__*/(0, _react2.styled)("div")({
|
|
63
|
+
name: "StyledScrollingContent",
|
|
64
|
+
"class": "s11gt4hl"
|
|
65
|
+
});
|
|
66
|
+
var StyledPlaceholder = /*#__PURE__*/(0, _react2.styled)("div")({
|
|
67
|
+
name: "StyledPlaceholder",
|
|
68
|
+
"class": "s13cxqhq"
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
var Layout = function Layout(_ref) {
|
|
72
|
+
var _ref$disabled = _ref.disabled,
|
|
73
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
74
|
+
shape = _ref.shape,
|
|
75
|
+
selected = _ref.selected,
|
|
76
|
+
layoutDragging = _ref.layoutDragging,
|
|
77
|
+
toggleShapeVisibility = _ref.toggleShapeVisibility,
|
|
78
|
+
toggleShapeLock = _ref.toggleShapeLock,
|
|
79
|
+
setLayoutDragging = _ref.setLayoutDragging,
|
|
80
|
+
handleRemove = _ref.handleRemove,
|
|
81
|
+
handleSelect = _ref.handleSelect,
|
|
82
|
+
onMoveShapes = _ref.onMoveShapes;
|
|
83
|
+
var ref = (0, _react.useRef)(null);
|
|
84
|
+
|
|
85
|
+
var onRemove = function onRemove(e) {
|
|
86
|
+
if (disabled) return;
|
|
87
|
+
e.preventDefault();
|
|
88
|
+
e.stopPropagation();
|
|
89
|
+
handleRemove(shape);
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
var onSelect = function onSelect(e) {
|
|
93
|
+
if (disabled) return;
|
|
94
|
+
e.preventDefault();
|
|
95
|
+
e.stopPropagation();
|
|
96
|
+
handleSelect(shape);
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
var onToggleShapeVisibility = function onToggleShapeVisibility(e) {
|
|
100
|
+
if (disabled) return;
|
|
101
|
+
e.preventDefault();
|
|
102
|
+
e.stopPropagation();
|
|
103
|
+
toggleShapeVisibility(shape);
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
var onToggleShapeLock = function onToggleShapeLock(e) {
|
|
107
|
+
if (disabled) return;
|
|
108
|
+
e.preventDefault();
|
|
109
|
+
e.stopPropagation();
|
|
110
|
+
toggleShapeLock(shape);
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
var _useDrag = (0, _useDrag2["default"])({
|
|
114
|
+
disabled: disabled,
|
|
115
|
+
ref: ref,
|
|
116
|
+
shape: shape,
|
|
117
|
+
layoutDragging: layoutDragging,
|
|
118
|
+
setLayoutDragging: setLayoutDragging,
|
|
119
|
+
handleSelect: handleSelect,
|
|
120
|
+
onMoveShapes: onMoveShapes
|
|
121
|
+
}),
|
|
122
|
+
isOver = _useDrag.isOver;
|
|
123
|
+
|
|
124
|
+
return /*#__PURE__*/_react["default"].createElement(StyledLayout, {
|
|
125
|
+
"data-disabled": +disabled,
|
|
126
|
+
draggable: !disabled,
|
|
127
|
+
"data-is-dragging": +(layoutDragging === shape.id),
|
|
128
|
+
"data-is-over": +isOver,
|
|
129
|
+
onClick: onSelect,
|
|
130
|
+
"data-selected": +selected,
|
|
131
|
+
ref: ref
|
|
132
|
+
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
133
|
+
dangerouslySetInnerHTML: {
|
|
134
|
+
__html: (0, _style.getShapePicture)(shape.type)
|
|
135
|
+
}
|
|
136
|
+
}), /*#__PURE__*/_react["default"].createElement(StyledSeparator, null), /*#__PURE__*/_react["default"].createElement(StyledVisibleButton, {
|
|
137
|
+
title: shape.visible ? 'Hide' : 'Show',
|
|
138
|
+
"data-visible": shape.visible !== false,
|
|
139
|
+
disabled: disabled,
|
|
140
|
+
onClick: onToggleShapeVisibility,
|
|
141
|
+
icon: shape.visible === false ? _icons.visibilityOffIcon : _icons.visibilityIcon
|
|
142
|
+
}), /*#__PURE__*/_react["default"].createElement(StyledLockedButton, {
|
|
143
|
+
title: shape.locked ? 'Locked' : 'Unlocked',
|
|
144
|
+
"data-locked": !!shape.locked,
|
|
145
|
+
disabled: disabled,
|
|
146
|
+
onClick: onToggleShapeLock,
|
|
147
|
+
icon: shape.locked ? _icons.lockedIcon : _icons.unlockedIcon
|
|
148
|
+
}));
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
var Layouts = function Layouts(_ref2) {
|
|
152
|
+
var withGrid = _ref2.withGrid,
|
|
153
|
+
setWithGrid = _ref2.setWithGrid,
|
|
154
|
+
_ref2$disabled = _ref2.disabled,
|
|
155
|
+
disabled = _ref2$disabled === void 0 ? false : _ref2$disabled,
|
|
156
|
+
shapes = _ref2.shapes,
|
|
157
|
+
removeShape = _ref2.removeShape,
|
|
158
|
+
toggleShapeVisibility = _ref2.toggleShapeVisibility,
|
|
159
|
+
toggleShapeLock = _ref2.toggleShapeLock,
|
|
160
|
+
selectedShape = _ref2.selectedShape,
|
|
161
|
+
moveShapes = _ref2.moveShapes,
|
|
162
|
+
selectShape = _ref2.selectShape,
|
|
163
|
+
withLayouts = _ref2.withLayouts,
|
|
164
|
+
isLayoutPanelShown = _ref2.isLayoutPanelShown;
|
|
165
|
+
|
|
166
|
+
var _useState = (0, _react.useState)(undefined),
|
|
167
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
168
|
+
layoutDragging = _useState2[0],
|
|
169
|
+
setLayoutDragging = _useState2[1];
|
|
170
|
+
|
|
171
|
+
var onToggleGrid = function onToggleGrid() {
|
|
172
|
+
setWithGrid(function (prev) {
|
|
173
|
+
return !prev;
|
|
174
|
+
});
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
return isLayoutPanelShown ? withLayouts === 'always' ? /*#__PURE__*/_react["default"].createElement(StyledLayouts, null, _fp["default"].map(function (shape) {
|
|
178
|
+
return /*#__PURE__*/_react["default"].createElement(Layout, {
|
|
179
|
+
key: shape.id,
|
|
180
|
+
shape: shape,
|
|
181
|
+
disabled: disabled,
|
|
182
|
+
layoutDragging: layoutDragging,
|
|
183
|
+
setLayoutDragging: setLayoutDragging,
|
|
184
|
+
selected: (selectedShape === null || selectedShape === void 0 ? void 0 : selectedShape.id) === shape.id,
|
|
185
|
+
handleSelect: selectShape,
|
|
186
|
+
handleRemove: removeShape,
|
|
187
|
+
onMoveShapes: moveShapes,
|
|
188
|
+
toggleShapeVisibility: toggleShapeVisibility,
|
|
189
|
+
toggleShapeLock: toggleShapeLock
|
|
190
|
+
});
|
|
191
|
+
}, shapes)) : /*#__PURE__*/_react["default"].createElement(StyledPanelLayouts, {
|
|
192
|
+
title: "Layouts",
|
|
193
|
+
alignment: "right"
|
|
194
|
+
}, /*#__PURE__*/_react["default"].createElement(StyledScrollingContent, null, /*#__PURE__*/_react["default"].createElement(StyledGridButton, {
|
|
195
|
+
title: withGrid ? 'Grid on' : 'Grid off',
|
|
196
|
+
"data-grid": withGrid,
|
|
197
|
+
disabled: disabled,
|
|
198
|
+
onClick: onToggleGrid,
|
|
199
|
+
icon: withGrid ? _icons.gridOnIcon : _icons.gridOffIcon
|
|
200
|
+
}, "Toggle grid"), /*#__PURE__*/_react["default"].createElement("hr", null), /*#__PURE__*/_react["default"].createElement(StyledLayouts, null, shapes.length === 0 ? /*#__PURE__*/_react["default"].createElement(StyledPlaceholder, null, "No layout yet") : _fp["default"].map(function (shape) {
|
|
201
|
+
return /*#__PURE__*/_react["default"].createElement(Layout, {
|
|
202
|
+
key: shape.id,
|
|
203
|
+
shape: shape,
|
|
204
|
+
disabled: disabled,
|
|
205
|
+
layoutDragging: layoutDragging,
|
|
206
|
+
setLayoutDragging: setLayoutDragging,
|
|
207
|
+
selected: (selectedShape === null || selectedShape === void 0 ? void 0 : selectedShape.id) === shape.id,
|
|
208
|
+
handleSelect: selectShape,
|
|
209
|
+
handleRemove: removeShape,
|
|
210
|
+
onMoveShapes: moveShapes,
|
|
211
|
+
toggleShapeVisibility: toggleShapeVisibility,
|
|
212
|
+
toggleShapeLock: toggleShapeLock
|
|
213
|
+
});
|
|
214
|
+
}, shapes)))) : null;
|
|
215
|
+
};
|
|
216
|
+
|
|
217
|
+
var _default = Layouts;
|
|
218
|
+
exports["default"] = _default;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare type LineArrowType = {
|
|
3
|
+
selectedSettings: string | undefined;
|
|
4
|
+
setSelectedSettings: React.Dispatch<React.SetStateAction<string | undefined>>;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
defaultValue?: number | string | undefined;
|
|
7
|
+
valueChanged: (field: string, value: string | number) => void;
|
|
8
|
+
};
|
|
9
|
+
declare const LineArrowField: ({ selectedSettings, setSelectedSettings, disabled, defaultValue, valueChanged }: LineArrowType) => JSX.Element;
|
|
10
|
+
export default LineArrowField;
|
|
@@ -0,0 +1,59 @@
|
|
|
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 _SelectField = _interopRequireDefault(require("./SelectField"));
|
|
13
|
+
|
|
14
|
+
var _style = require("../../constants/style");
|
|
15
|
+
|
|
16
|
+
var _react2 = require("@linaria/react");
|
|
17
|
+
|
|
18
|
+
var StyledLeftTriangle = /*#__PURE__*/(0, _react2.styled)("span")({
|
|
19
|
+
name: "StyledLeftTriangle",
|
|
20
|
+
"class": "s1xxj4yl"
|
|
21
|
+
});
|
|
22
|
+
var StyledRightTriangle = /*#__PURE__*/(0, _react2.styled)("span")({
|
|
23
|
+
name: "StyledRightTriangle",
|
|
24
|
+
"class": "sbd6jc8"
|
|
25
|
+
});
|
|
26
|
+
var StyledOption = /*#__PURE__*/(0, _react2.styled)("span")({
|
|
27
|
+
name: "StyledOption",
|
|
28
|
+
"class": "scawaat"
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
var LineArrowOption = function LineArrowOption(_ref) {
|
|
32
|
+
var children = _ref.children;
|
|
33
|
+
return /*#__PURE__*/_react["default"].createElement(StyledOption, {
|
|
34
|
+
"data-type": children
|
|
35
|
+
}, /*#__PURE__*/_react["default"].createElement(StyledLeftTriangle, null), /*#__PURE__*/_react["default"].createElement(StyledRightTriangle, null));
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
var LineArrowField = function LineArrowField(_ref2) {
|
|
39
|
+
var selectedSettings = _ref2.selectedSettings,
|
|
40
|
+
setSelectedSettings = _ref2.setSelectedSettings,
|
|
41
|
+
_ref2$disabled = _ref2.disabled,
|
|
42
|
+
disabled = _ref2$disabled === void 0 ? false : _ref2$disabled,
|
|
43
|
+
defaultValue = _ref2.defaultValue,
|
|
44
|
+
valueChanged = _ref2.valueChanged;
|
|
45
|
+
return /*#__PURE__*/_react["default"].createElement(_SelectField["default"], {
|
|
46
|
+
selectedSettings: selectedSettings,
|
|
47
|
+
setSelectedSettings: setSelectedSettings,
|
|
48
|
+
CustomOption: LineArrowOption,
|
|
49
|
+
title: "Fl\xE8ches",
|
|
50
|
+
disabled: disabled,
|
|
51
|
+
field: "style.lineArrow",
|
|
52
|
+
values: _style.STYLE_LINE_WITH_ARROW,
|
|
53
|
+
defaultValue: defaultValue,
|
|
54
|
+
valueChanged: valueChanged
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
var _default = LineArrowField;
|
|
59
|
+
exports["default"] = _default;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare type LineTypeOptionType = {
|
|
3
|
+
children: string;
|
|
4
|
+
};
|
|
5
|
+
export declare const LineTypeOption: ({ children }: LineTypeOptionType) => JSX.Element;
|
|
6
|
+
declare type LineTypeType = {
|
|
7
|
+
selectedSettings: string | undefined;
|
|
8
|
+
setSelectedSettings: React.Dispatch<React.SetStateAction<string | undefined>>;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
defaultValue?: number | string | undefined;
|
|
11
|
+
valueChanged: (field: string, value: string | number) => void;
|
|
12
|
+
};
|
|
13
|
+
declare const LineTypeField: ({ selectedSettings, setSelectedSettings, disabled, defaultValue, valueChanged }: LineTypeType) => JSX.Element;
|
|
14
|
+
export default LineTypeField;
|
|
@@ -0,0 +1,57 @@
|
|
|
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"] = exports.LineTypeOption = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _SelectField = _interopRequireDefault(require("./SelectField"));
|
|
13
|
+
|
|
14
|
+
var _style = require("../../constants/style");
|
|
15
|
+
|
|
16
|
+
var _react2 = require("@linaria/react");
|
|
17
|
+
|
|
18
|
+
var StyledLine = /*#__PURE__*/(0, _react2.styled)("span")({
|
|
19
|
+
name: "StyledLine",
|
|
20
|
+
"class": "s1qssg4n"
|
|
21
|
+
});
|
|
22
|
+
var StyledOption = /*#__PURE__*/(0, _react2.styled)("span")({
|
|
23
|
+
name: "StyledOption",
|
|
24
|
+
"class": "se26iq6"
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
var LineTypeOption = function LineTypeOption(_ref) {
|
|
28
|
+
var children = _ref.children;
|
|
29
|
+
return /*#__PURE__*/_react["default"].createElement(StyledOption, {
|
|
30
|
+
"data-type": children
|
|
31
|
+
}, /*#__PURE__*/_react["default"].createElement(StyledLine, null), /*#__PURE__*/_react["default"].createElement(StyledLine, null), /*#__PURE__*/_react["default"].createElement(StyledLine, null), /*#__PURE__*/_react["default"].createElement(StyledLine, null), /*#__PURE__*/_react["default"].createElement(StyledLine, null), /*#__PURE__*/_react["default"].createElement(StyledLine, null), /*#__PURE__*/_react["default"].createElement(StyledLine, null), /*#__PURE__*/_react["default"].createElement(StyledLine, null), /*#__PURE__*/_react["default"].createElement(StyledLine, null), /*#__PURE__*/_react["default"].createElement(StyledLine, null), /*#__PURE__*/_react["default"].createElement(StyledLine, null), /*#__PURE__*/_react["default"].createElement(StyledLine, null), /*#__PURE__*/_react["default"].createElement(StyledLine, null));
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
exports.LineTypeOption = LineTypeOption;
|
|
35
|
+
|
|
36
|
+
var LineTypeField = function LineTypeField(_ref2) {
|
|
37
|
+
var selectedSettings = _ref2.selectedSettings,
|
|
38
|
+
setSelectedSettings = _ref2.setSelectedSettings,
|
|
39
|
+
_ref2$disabled = _ref2.disabled,
|
|
40
|
+
disabled = _ref2$disabled === void 0 ? false : _ref2$disabled,
|
|
41
|
+
defaultValue = _ref2.defaultValue,
|
|
42
|
+
valueChanged = _ref2.valueChanged;
|
|
43
|
+
return /*#__PURE__*/_react["default"].createElement(_SelectField["default"], {
|
|
44
|
+
selectedSettings: selectedSettings,
|
|
45
|
+
setSelectedSettings: setSelectedSettings,
|
|
46
|
+
CustomOption: LineTypeOption,
|
|
47
|
+
title: "Type de traits",
|
|
48
|
+
disabled: disabled,
|
|
49
|
+
field: "style.lineDash",
|
|
50
|
+
values: _style.STYLE_LINE_DASH,
|
|
51
|
+
defaultValue: defaultValue,
|
|
52
|
+
valueChanged: valueChanged
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
var _default = LineTypeField;
|
|
57
|
+
exports["default"] = _default;
|