@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.
Files changed (103) hide show
  1. package/Changelog.md +26 -0
  2. package/README.md +99 -0
  3. package/dist/components/App.d.ts +20 -0
  4. package/dist/components/App.js +533 -0
  5. package/dist/components/Canvas.d.ts +28 -0
  6. package/dist/components/Canvas.js +188 -0
  7. package/dist/components/common/Button.d.ts +14 -0
  8. package/dist/components/common/Button.js +97 -0
  9. package/dist/components/common/Loading.d.ts +6 -0
  10. package/dist/components/common/Loading.js +66 -0
  11. package/dist/components/common/Modal.d.ts +8 -0
  12. package/dist/components/common/Modal.js +41 -0
  13. package/dist/components/common/Panel.d.ts +10 -0
  14. package/dist/components/common/Panel.js +48 -0
  15. package/dist/components/common/Snackbar.d.ts +7 -0
  16. package/dist/components/common/Snackbar.js +75 -0
  17. package/dist/components/settings/ColorField.d.ts +12 -0
  18. package/dist/components/settings/ColorField.js +128 -0
  19. package/dist/components/settings/DeleteButton.d.ts +9 -0
  20. package/dist/components/settings/DeleteButton.js +36 -0
  21. package/dist/components/settings/FontFamilyField.d.ts +10 -0
  22. package/dist/components/settings/FontFamilyField.js +57 -0
  23. package/dist/components/settings/LayoutButton.d.ts +8 -0
  24. package/dist/components/settings/LayoutButton.js +37 -0
  25. package/dist/components/settings/Layouts.d.ts +18 -0
  26. package/dist/components/settings/Layouts.js +218 -0
  27. package/dist/components/settings/LineArrowField.d.ts +10 -0
  28. package/dist/components/settings/LineArrowField.js +59 -0
  29. package/dist/components/settings/LineTypeField.d.ts +14 -0
  30. package/dist/components/settings/LineTypeField.js +57 -0
  31. package/dist/components/settings/PointsNumberField.d.ts +11 -0
  32. package/dist/components/settings/PointsNumberField.js +51 -0
  33. package/dist/components/settings/RangeField.d.ts +16 -0
  34. package/dist/components/settings/RangeField.js +90 -0
  35. package/dist/components/settings/SelectField.d.ts +16 -0
  36. package/dist/components/settings/SelectField.js +82 -0
  37. package/dist/components/settings/SettingsBar.d.ts +16 -0
  38. package/dist/components/settings/SettingsBar.js +262 -0
  39. package/dist/components/toolbox/EditTextBox.d.ts +10 -0
  40. package/dist/components/toolbox/EditTextBox.js +89 -0
  41. package/dist/components/toolbox/LoadFileTool.d.ts +11 -0
  42. package/dist/components/toolbox/LoadFileTool.js +58 -0
  43. package/dist/components/toolbox/MenuGroup.d.ts +23 -0
  44. package/dist/components/toolbox/MenuGroup.js +173 -0
  45. package/dist/components/toolbox/PictureUrlInput.d.ts +7 -0
  46. package/dist/components/toolbox/PictureUrlInput.js +96 -0
  47. package/dist/components/toolbox/Tool.d.ts +13 -0
  48. package/dist/components/toolbox/Tool.js +41 -0
  49. package/dist/components/toolbox/Toolbar.d.ts +20 -0
  50. package/dist/components/toolbox/Toolbar.js +205 -0
  51. package/dist/components/toolbox/ToolbarGroup.d.ts +18 -0
  52. package/dist/components/toolbox/ToolbarGroup.js +139 -0
  53. package/dist/constants/draw.d.ts +2 -0
  54. package/dist/constants/draw.js +10 -0
  55. package/dist/constants/icons.d.ts +36 -0
  56. package/dist/constants/icons.js +80 -0
  57. package/dist/constants/shapes.d.ts +5 -0
  58. package/dist/constants/shapes.js +14 -0
  59. package/dist/constants/snackbar.d.ts +11 -0
  60. package/dist/constants/snackbar.js +23 -0
  61. package/dist/constants/style.d.ts +12 -0
  62. package/dist/constants/style.js +30 -0
  63. package/dist/hooks/useComponent.d.ts +9 -0
  64. package/dist/hooks/useComponent.js +48 -0
  65. package/dist/hooks/useDrag.d.ts +15 -0
  66. package/dist/hooks/useDrag.js +100 -0
  67. package/dist/hooks/useDrawableCanvas.d.ts +30 -0
  68. package/dist/hooks/useDrawableCanvas.js +250 -0
  69. package/dist/hooks/useKeyboard.d.ts +15 -0
  70. package/dist/hooks/useKeyboard.js +123 -0
  71. package/dist/hooks/useShapes.d.ts +22 -0
  72. package/dist/hooks/useShapes.js +229 -0
  73. package/dist/hooks/useSnackbar.d.ts +16 -0
  74. package/dist/hooks/useSnackbar.js +86 -0
  75. package/dist/schemas/drawableShape.json +1021 -0
  76. package/dist/styles.css +88 -0
  77. package/dist/types/Mode.d.ts +51 -0
  78. package/dist/types/Mode.js +17 -0
  79. package/dist/types/Shapes.d.ts +122 -0
  80. package/dist/types/Shapes.js +35 -0
  81. package/dist/types/keyboard.d.ts +15 -0
  82. package/dist/types/keyboard.js +28 -0
  83. package/dist/utils/data.d.ts +4 -0
  84. package/dist/utils/data.js +178 -0
  85. package/dist/utils/draw.d.ts +18 -0
  86. package/dist/utils/draw.js +422 -0
  87. package/dist/utils/file.d.ts +33 -0
  88. package/dist/utils/file.js +220 -0
  89. package/dist/utils/intersect.d.ts +8 -0
  90. package/dist/utils/intersect.js +194 -0
  91. package/dist/utils/selection.d.ts +7 -0
  92. package/dist/utils/selection.js +88 -0
  93. package/dist/utils/shapeData.d.ts +5 -0
  94. package/dist/utils/shapeData.js +178 -0
  95. package/dist/utils/string.d.ts +3 -0
  96. package/dist/utils/string.js +42 -0
  97. package/dist/utils/style.d.ts +2 -0
  98. package/dist/utils/style.js +46 -0
  99. package/dist/utils/toolbar.d.ts +12 -0
  100. package/dist/utils/toolbar.js +37 -0
  101. package/dist/utils/transform.d.ts +271 -0
  102. package/dist/utils/transform.js +371 -0
  103. 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;