react-align 1.1.6 → 2.0.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/README.md +33 -34
- package/dist/GridArea.d.ts +18 -0
- package/dist/GridItem.d.ts +27 -0
- package/dist/{Grid/GridSection/index.d.ts → GridSection.d.ts} +4 -3
- package/dist/GridWrapper.d.ts +17 -0
- package/dist/Icon/index.d.ts +1 -1
- package/dist/context.d.ts +11 -4
- package/dist/index.d.ts +5 -5
- package/dist/react-align.cjs.development.js +225 -317
- package/dist/react-align.cjs.development.js.map +1 -1
- package/dist/react-align.cjs.production.min.js +1 -1
- package/dist/react-align.cjs.production.min.js.map +1 -1
- package/dist/react-align.esm.js +226 -318
- package/dist/react-align.esm.js.map +1 -1
- package/package.json +7 -12
- package/src/GridArea.tsx +152 -0
- package/src/GridItem.tsx +155 -0
- package/src/GridSection.tsx +53 -0
- package/src/GridWrapper.tsx +87 -0
- package/src/Icon/index.tsx +3 -3
- package/src/context.tsx +8 -4
- package/src/grid.css +80 -0
- package/src/index.tsx +5 -5
- package/dist/Grid/GridArea/index.d.ts +0 -18
- package/dist/Grid/GridItem/index.d.ts +0 -25
- package/dist/Grid/GridWrapper/index.d.ts +0 -12
- package/src/Grid/GridArea/index.tsx +0 -180
- package/src/Grid/GridItem/index.tsx +0 -266
- package/src/Grid/GridSection/index.tsx +0 -46
- package/src/Grid/GridWrapper/index.tsx +0 -39
- package/src/Grid/grid.css +0 -78
- package/src/Grid/interfaces.ts +0 -5
- package/src/stories/GridArea.stories.tsx +0 -28
|
@@ -6,15 +6,15 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau
|
|
|
6
6
|
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var React__default = _interopDefault(React);
|
|
9
|
-
var
|
|
10
|
-
var reactDndHtml5Backend = require('react-dnd-html5-backend');
|
|
9
|
+
var reactBeautifulDnd = require('react-beautiful-dnd');
|
|
11
10
|
var glamor = require('glamor');
|
|
12
11
|
|
|
13
|
-
var
|
|
14
|
-
|
|
12
|
+
var Context = /*#__PURE__*/React.createContext({
|
|
13
|
+
editing: false,
|
|
14
|
+
isDragging: false
|
|
15
15
|
});
|
|
16
|
-
var
|
|
17
|
-
return React.useContext(
|
|
16
|
+
var useAlignContext = function useAlignContext() {
|
|
17
|
+
return React.useContext(Context);
|
|
18
18
|
};
|
|
19
19
|
|
|
20
20
|
function styleInject(css, ref) {
|
|
@@ -44,25 +44,45 @@ function styleInject(css, ref) {
|
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
var css_248z = ".wrapper{height:100%}.section,.wrapper{display:flex;justify-content:space-between}.section{flex-direction:column}.area{border:1px solid transparent;border-radius:8px;box-sizing:border-box;display:flex;position:relative}.area-transition-in{transition:all .3s ease-in-out,min-height .5s ease-in-out .2s,min-width .5s ease-in-out .2s}.area-transition-out{transition:all .3s ease-in-out .4s,min-height .5s ease-in-out .2s,min-width .5s ease-in-out .2s}.item{border:1px solid transparent;border-radius:6px;box-sizing:border-box;margin:6px
|
|
47
|
+
var css_248z = ".wrapper{height:100%}.section,.wrapper{display:flex;justify-content:space-between}.section{flex-direction:column}.area{border:1px solid transparent;border-radius:8px;box-sizing:border-box;display:flex;position:relative}.area-transition-in{transition:all .3s ease-in-out,min-height .5s ease-in-out .2s,min-width .5s ease-in-out .2s}.area-transition-out{transition:all .3s ease-in-out .4s,min-height .5s ease-in-out .2s,min-width .5s ease-in-out .2s}.item{border:1px solid transparent;border-radius:6px;box-sizing:border-box;margin:6px;min-height:40px;min-width:70px;position:relative}.stretch{flex:auto}.middle{flex-grow:0;flex:auto}.just-centered{justify-content:center}.just-end{justify-content:flex-end}.end{align-items:flex-end}.hide{display:none}.overlay{background:rgba(0,0,0,.6);bottom:0;box-sizing:border-box;left:0;position:absolute;right:0;top:0}.overlay-buttons{box-sizing:border-box;display:flex;justify-content:space-between;padding:6px}";
|
|
48
48
|
styleInject(css_248z);
|
|
49
49
|
|
|
50
50
|
var GridWrapper = function GridWrapper(_ref) {
|
|
51
51
|
var className = _ref.className,
|
|
52
|
-
|
|
52
|
+
editing = _ref.editing,
|
|
53
53
|
vertical = _ref.vertical,
|
|
54
54
|
stretch = _ref.stretch,
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
children = _ref.children
|
|
55
|
+
style = _ref.style,
|
|
56
|
+
editorStyle = _ref.editorStyle,
|
|
57
|
+
children = _ref.children,
|
|
58
|
+
onMove = _ref.onMove,
|
|
59
|
+
onAlignChange = _ref.onAlignmentChange,
|
|
60
|
+
onExtend = _ref.onExtend;
|
|
61
|
+
|
|
62
|
+
var _useState = React.useState(false),
|
|
63
|
+
isDragging = _useState[0],
|
|
64
|
+
setDragging = _useState[1];
|
|
65
|
+
|
|
66
|
+
var handleDragStart = React.useCallback(function () {
|
|
67
|
+
setDragging(true);
|
|
68
|
+
}, []);
|
|
69
|
+
var handleDragEnd = React.useCallback(function (result, _provided) {
|
|
70
|
+
setDragging(false);
|
|
71
|
+
if (!result.destination || result.reason !== 'DROP' || result.destination.droppableId === result.source.droppableId && result.destination.index === result.source.index) return;
|
|
72
|
+
onMove == null ? void 0 : onMove(result.draggableId, result.destination.droppableId, result.destination.index, result.source.droppableId, result.source.index);
|
|
73
|
+
}, [onMove]);
|
|
58
74
|
return React__default.createElement("div", {
|
|
59
75
|
className: "wrapper " + className + " " + (vertical && 'vertical') + " " + (stretch && 'stretch'),
|
|
60
|
-
style:
|
|
61
|
-
}, React__default.createElement(
|
|
62
|
-
|
|
63
|
-
|
|
76
|
+
style: editing ? editorStyle : style
|
|
77
|
+
}, React__default.createElement(reactBeautifulDnd.DragDropContext, {
|
|
78
|
+
onDragStart: handleDragStart,
|
|
79
|
+
onDragEnd: handleDragEnd
|
|
80
|
+
}, React__default.createElement(Context.Provider, {
|
|
64
81
|
value: {
|
|
65
|
-
|
|
82
|
+
editing: !!editing,
|
|
83
|
+
onAlignChange: onAlignChange,
|
|
84
|
+
onExtend: onExtend,
|
|
85
|
+
isDragging: isDragging
|
|
66
86
|
}
|
|
67
87
|
}, children)));
|
|
68
88
|
};
|
|
@@ -85,26 +105,41 @@ function _extends() {
|
|
|
85
105
|
return _extends.apply(this, arguments);
|
|
86
106
|
}
|
|
87
107
|
|
|
108
|
+
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
109
|
+
if (source == null) return {};
|
|
110
|
+
var target = {};
|
|
111
|
+
var sourceKeys = Object.keys(source);
|
|
112
|
+
var key, i;
|
|
113
|
+
|
|
114
|
+
for (i = 0; i < sourceKeys.length; i++) {
|
|
115
|
+
key = sourceKeys[i];
|
|
116
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
117
|
+
target[key] = source[key];
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
return target;
|
|
121
|
+
}
|
|
122
|
+
|
|
88
123
|
var GridSection = function GridSection(_ref) {
|
|
89
124
|
var className = _ref.className,
|
|
90
125
|
horizontal = _ref.horizontal,
|
|
91
126
|
stretch = _ref.stretch,
|
|
92
127
|
fixedWidth = _ref.fixedWidth,
|
|
93
128
|
fixedHeight = _ref.fixedHeight,
|
|
94
|
-
|
|
95
|
-
|
|
129
|
+
style = _ref.style,
|
|
130
|
+
editorStyle = _ref.editorStyle,
|
|
96
131
|
children = _ref.children;
|
|
97
132
|
|
|
98
|
-
var
|
|
99
|
-
enabled =
|
|
133
|
+
var _useAlignContext = useAlignContext(),
|
|
134
|
+
enabled = _useAlignContext.editing;
|
|
100
135
|
|
|
101
|
-
var stylesFromProps = enabled ? editorStyles : styles;
|
|
102
136
|
return React__default.createElement("div", {
|
|
103
|
-
className: "section " + className + " " + (horizontal
|
|
104
|
-
style: _extends({},
|
|
105
|
-
height: fixedHeight + 'px'
|
|
137
|
+
className: "section " + className + " " + (horizontal ? 'horizontal' : '') + " " + (stretch ? 'stretch' : ''),
|
|
138
|
+
style: _extends({}, enabled ? editorStyle : style, typeof fixedHeight === 'number' ? {
|
|
139
|
+
height: fixedHeight + 'px'
|
|
140
|
+
} : {}, typeof fixedWidth === 'number' ? {
|
|
106
141
|
width: fixedWidth + 'px'
|
|
107
|
-
})
|
|
142
|
+
} : {})
|
|
108
143
|
}, children);
|
|
109
144
|
};
|
|
110
145
|
|
|
@@ -400,330 +435,203 @@ var Icon = function Icon(_ref) {
|
|
|
400
435
|
var className = _ref.className,
|
|
401
436
|
name = _ref.name,
|
|
402
437
|
size = _ref.size,
|
|
403
|
-
|
|
404
|
-
|
|
438
|
+
style = _ref.style,
|
|
439
|
+
onClick = _ref.onClick;
|
|
405
440
|
var LocalIconComponent = Icons[name];
|
|
406
441
|
return React__default.createElement(LocalIconComponent, Object.assign({
|
|
407
442
|
className: className
|
|
408
443
|
}, IconStyles(size), {
|
|
409
|
-
style:
|
|
444
|
+
style: style,
|
|
410
445
|
onClick: onClick
|
|
411
446
|
}));
|
|
412
447
|
};
|
|
413
448
|
|
|
414
|
-
var
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
449
|
+
var alignments = ['start', 'centered', 'end'];
|
|
450
|
+
function GridArea(_ref) {
|
|
451
|
+
var id = _ref.id,
|
|
452
|
+
className = _ref.className,
|
|
453
|
+
vertical = _ref.vertical,
|
|
454
|
+
stretch = _ref.stretch,
|
|
455
|
+
end = _ref.end,
|
|
456
|
+
disabled = _ref.disabled,
|
|
457
|
+
align = _ref.align,
|
|
458
|
+
onAlignmentChange = _ref.onAlignmentChange,
|
|
459
|
+
children = _ref.children,
|
|
460
|
+
style = _ref.style,
|
|
461
|
+
editorStyle = _ref.editorStyle,
|
|
462
|
+
_ref$iconColor = _ref.iconColor,
|
|
463
|
+
iconColor = _ref$iconColor === void 0 ? '#FFFFFF' : _ref$iconColor;
|
|
464
|
+
|
|
465
|
+
var _useAlignContext = useAlignContext(),
|
|
466
|
+
enabled = _useAlignContext.editing,
|
|
467
|
+
onAlignChange2 = _useAlignContext.onAlignChange;
|
|
468
|
+
|
|
469
|
+
var handleAlignChange = React.useCallback(function () {
|
|
470
|
+
var a = alignments[(align ? alignments.indexOf(align) + 1 : 0) % alignments.length];
|
|
471
|
+
onAlignmentChange == null ? void 0 : onAlignmentChange(a);
|
|
472
|
+
onAlignChange2 == null ? void 0 : onAlignChange2(id, a);
|
|
473
|
+
}, [align, onAlignmentChange, onAlignChange2, id]);
|
|
474
|
+
var buttonStyle = React.useMemo(function () {
|
|
475
|
+
return {
|
|
476
|
+
position: 'absolute',
|
|
477
|
+
left: vertical ? end ? 0 : undefined : '50%',
|
|
478
|
+
right: vertical ? !end ? 0 : undefined : '50%',
|
|
479
|
+
bottom: !vertical && !end ? 0 : vertical ? '50%' : undefined,
|
|
480
|
+
top: vertical ? '50%' : end ? 0 : undefined,
|
|
481
|
+
opacity: !disabled && enabled && align ? 1 : 0,
|
|
482
|
+
pointerEvents: !disabled && enabled && align ? 'auto' : 'none',
|
|
483
|
+
transition: 'all 0.5s ease-in-out'
|
|
484
|
+
};
|
|
485
|
+
}, [vertical, end, disabled, enabled, align]); // Rebuilds the GridItem children to receive their parent GridArea's 'end' and 'vertical' values.
|
|
486
|
+
// Used to know where to align the overlay buttons (end) and how to extend the GridItems (vertical).
|
|
487
|
+
|
|
488
|
+
var childrenWithParentProps = React.useMemo(function () {
|
|
489
|
+
return React__default.Children.map(children, function (child) {
|
|
490
|
+
return React__default.cloneElement(child, {
|
|
491
|
+
end: end,
|
|
492
|
+
vertical: vertical
|
|
493
|
+
});
|
|
494
|
+
});
|
|
495
|
+
}, [children, end, vertical]);
|
|
496
|
+
return React__default.createElement(reactBeautifulDnd.Droppable, {
|
|
497
|
+
droppableId: id,
|
|
498
|
+
direction: vertical ? 'vertical' : 'horizontal',
|
|
499
|
+
isDropDisabled: disabled
|
|
500
|
+
}, function (provided, snapshot) {
|
|
501
|
+
return React__default.createElement("div", Object.assign({
|
|
502
|
+
ref: provided.innerRef
|
|
503
|
+
}, provided.droppableProps, {
|
|
504
|
+
className: [className, 'area', stretch && 'stretch', end && 'end', align === 'centered' ? 'just-centered' : align === 'end' ? 'just-end' : 'start', enabled ? 'area-transition-in' : 'area-transition-out'].filter(Boolean).join(' '),
|
|
505
|
+
style: _extends({
|
|
506
|
+
flexDirection: vertical ? 'column' : 'row',
|
|
507
|
+
minHeight: !React__default.Children.count(children) && !enabled ? '0px' : '26px',
|
|
508
|
+
minWidth: !React__default.Children.count(children) && !enabled ? '0px' : '46px',
|
|
509
|
+
opacity: snapshot.isDraggingOver ? 0.8 : 1
|
|
510
|
+
}, enabled ? editorStyle : style)
|
|
511
|
+
}), childrenWithParentProps, provided.placeholder, React__default.createElement("div", {
|
|
512
|
+
style: buttonStyle
|
|
513
|
+
}, React__default.createElement("div", {
|
|
514
|
+
onClick: handleAlignChange,
|
|
515
|
+
style: {
|
|
516
|
+
cursor: 'pointer'
|
|
517
|
+
}
|
|
518
|
+
}, React__default.createElement(Icon, {
|
|
519
|
+
name: align === 'centered' ? vertical ? 'alignCenterV' : 'alignCenter' : align === 'end' ? vertical ? 'alignEndV' : 'alignEnd' : vertical ? 'alignStartV' : 'alignStart',
|
|
520
|
+
style: {
|
|
521
|
+
color: iconColor
|
|
522
|
+
}
|
|
523
|
+
}))));
|
|
524
|
+
});
|
|
525
|
+
}
|
|
526
|
+
|
|
418
527
|
function GridItem(_ref) {
|
|
419
528
|
var className = _ref.className,
|
|
420
529
|
children = _ref.children,
|
|
421
530
|
id = _ref.id,
|
|
422
531
|
index = _ref.index,
|
|
423
|
-
extendable = _ref.extendable,
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
532
|
+
_ref$extendable = _ref.extendable,
|
|
533
|
+
extendable = _ref$extendable === void 0 ? false : _ref$extendable,
|
|
534
|
+
_ref$extended = _ref.extended,
|
|
535
|
+
extended = _ref$extended === void 0 ? false : _ref$extended,
|
|
536
|
+
_ref$disabled = _ref.disabled,
|
|
537
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
428
538
|
onExtend = _ref.onExtend,
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
vertical = _ref.vertical,
|
|
432
|
-
styles = _ref.styles,
|
|
433
|
-
editorStyles = _ref.editorStyles,
|
|
539
|
+
style = _ref.style,
|
|
540
|
+
editorStyle = _ref.editorStyle,
|
|
434
541
|
iconSize = _ref.iconSize,
|
|
435
542
|
_ref$iconColor = _ref.iconColor,
|
|
436
|
-
iconColor = _ref$iconColor === void 0 ? 'rgb(255, 255, 255)' : _ref$iconColor
|
|
437
|
-
|
|
543
|
+
iconColor = _ref$iconColor === void 0 ? 'rgb(255, 255, 255)' : _ref$iconColor,
|
|
544
|
+
props = _objectWithoutPropertiesLoose(_ref, ["className", "children", "id", "index", "extendable", "extended", "disabled", "onExtend", "style", "editorStyle", "iconSize", "iconColor"]);
|
|
545
|
+
|
|
546
|
+
var end = props.end,
|
|
547
|
+
vertical = props.vertical;
|
|
438
548
|
|
|
439
|
-
var
|
|
440
|
-
|
|
549
|
+
var _useAlignContext = useAlignContext(),
|
|
550
|
+
editing = _useAlignContext.editing,
|
|
551
|
+
isDragging = _useAlignContext.isDragging,
|
|
552
|
+
onExtend2 = _useAlignContext.onExtend;
|
|
441
553
|
|
|
442
554
|
var _useState = React.useState(false),
|
|
443
555
|
isHovered = _useState[0],
|
|
444
556
|
setHovered = _useState[1];
|
|
445
557
|
|
|
446
|
-
var
|
|
447
|
-
|
|
448
|
-
var handleExtend = function handleExtend() {
|
|
449
|
-
if (!extendable || !onExtend) return;
|
|
558
|
+
var handleExtend = React.useCallback(function () {
|
|
559
|
+
if (!extendable) return;
|
|
450
560
|
setHovered(false);
|
|
451
|
-
onExtend(
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
var _useDrop = reactDnd.useDrop({
|
|
457
|
-
accept: [ItemType.ITEM, ItemType.GROUP],
|
|
458
|
-
collect: function collect(monitor) {
|
|
459
|
-
return {
|
|
460
|
-
handlerId: monitor.getHandlerId()
|
|
461
|
-
};
|
|
462
|
-
},
|
|
463
|
-
hover: function hover(item, monitor) {
|
|
464
|
-
var _ref$current;
|
|
465
|
-
|
|
466
|
-
if (!ref.current || !enabled || draggable) {
|
|
467
|
-
return;
|
|
468
|
-
}
|
|
469
|
-
|
|
470
|
-
var dragIndex = item.index;
|
|
471
|
-
var hoverIndex = index;
|
|
472
|
-
|
|
473
|
-
if (dragIndex === hoverIndex) {
|
|
474
|
-
return;
|
|
475
|
-
}
|
|
476
|
-
|
|
477
|
-
var hoverBoundingRect = (_ref$current = ref.current) == null ? void 0 : _ref$current.getBoundingClientRect();
|
|
478
|
-
var hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;
|
|
479
|
-
var hoverMiddleX = (hoverBoundingRect.right - hoverBoundingRect.left) / 2;
|
|
480
|
-
var clientOffset = monitor.getClientOffset();
|
|
481
|
-
if (!clientOffset) return;
|
|
482
|
-
var hoverClientY = clientOffset.y - hoverBoundingRect.top;
|
|
483
|
-
var hoverClientX = clientOffset.x - hoverBoundingRect.left;
|
|
484
|
-
|
|
485
|
-
if (vertical) {
|
|
486
|
-
if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) {
|
|
487
|
-
return;
|
|
488
|
-
}
|
|
489
|
-
|
|
490
|
-
if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) {
|
|
491
|
-
return;
|
|
492
|
-
}
|
|
493
|
-
} else {
|
|
494
|
-
if (dragIndex < hoverIndex && hoverClientX < hoverMiddleX) {
|
|
495
|
-
return;
|
|
496
|
-
}
|
|
497
|
-
|
|
498
|
-
if (dragIndex > hoverIndex && hoverClientX > hoverMiddleX) {
|
|
499
|
-
return;
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
|
-
|
|
503
|
-
dragIndexRef.current = dragIndex;
|
|
504
|
-
},
|
|
505
|
-
drop: function drop(item) {
|
|
506
|
-
if (dragIndexRef.current !== undefined) {
|
|
507
|
-
onReorder(item.id, location, dragIndexRef.current, index);
|
|
508
|
-
dragIndexRef.current = undefined;
|
|
509
|
-
}
|
|
510
|
-
}
|
|
511
|
-
}),
|
|
512
|
-
handlerId = _useDrop[0].handlerId,
|
|
513
|
-
drop = _useDrop[1];
|
|
514
|
-
|
|
515
|
-
var _useDrag = reactDnd.useDrag({
|
|
516
|
-
type: ItemType.ITEM,
|
|
517
|
-
item: {
|
|
518
|
-
id: id,
|
|
519
|
-
index: index
|
|
520
|
-
},
|
|
521
|
-
canDrag: draggable != null ? draggable : enabled,
|
|
522
|
-
end: function end(item, monitor) {
|
|
523
|
-
var dropResults = monitor.getDropResult();
|
|
524
|
-
|
|
525
|
-
if (dropResults && dropResults.location !== location) {
|
|
526
|
-
onMoveArea(item.id, dropResults.location, location);
|
|
527
|
-
}
|
|
528
|
-
},
|
|
529
|
-
collect: function collect(monitor) {
|
|
530
|
-
return {
|
|
531
|
-
isDragging: monitor.isDragging()
|
|
532
|
-
};
|
|
533
|
-
}
|
|
534
|
-
}, [dragIndexRef]),
|
|
535
|
-
isDragging = _useDrag[0].isDragging,
|
|
536
|
-
drag = _useDrag[1],
|
|
537
|
-
preview = _useDrag[2];
|
|
538
|
-
|
|
539
|
-
preview(drop(ref)); // ***************************************
|
|
540
|
-
// ***************************************
|
|
541
|
-
// External styles for editorMode or the vanilla grid
|
|
542
|
-
|
|
543
|
-
var stylesFromProps = enabled ? editorStyles : styles;
|
|
544
|
-
var itemStyles = React.useMemo(function () {
|
|
545
|
-
return {
|
|
546
|
-
opacity: isDragging ? 0.5 : 1,
|
|
547
|
-
minHeight: isHovered && enabled ? '40px' : undefined,
|
|
548
|
-
width: !vertical && extended ? '100%' : undefined,
|
|
549
|
-
minWidth: isHovered && enabled ? extendable ? '70px' : '30px' : undefined,
|
|
550
|
-
height: vertical && extended ? '100%' : undefined
|
|
551
|
-
};
|
|
552
|
-
}, [isDragging, isHovered, enabled, vertical, extended, extendable]);
|
|
553
|
-
var containerStyle = React.useMemo(function () {
|
|
554
|
-
return {
|
|
555
|
-
position: 'relative',
|
|
556
|
-
display: 'inline-block',
|
|
557
|
-
minHeight: isHovered && enabled ? '40px' : undefined,
|
|
558
|
-
width: !vertical && extended ? '100%' : undefined,
|
|
559
|
-
minWidth: isHovered && enabled ? extendable ? '70px' : '30px' : undefined,
|
|
560
|
-
height: vertical && extended ? '100%' : undefined
|
|
561
|
-
};
|
|
562
|
-
}, [isHovered, enabled, vertical, extended, extendable]);
|
|
563
|
-
var overlayStyles = {
|
|
564
|
-
position: 'absolute',
|
|
565
|
-
top: '0',
|
|
566
|
-
left: '0',
|
|
567
|
-
width: '100%',
|
|
568
|
-
height: '100%',
|
|
569
|
-
boxSizing: 'border-box',
|
|
570
|
-
background: 'rgba(0,0,0,0.6)',
|
|
571
|
-
borderRadius: '6px'
|
|
572
|
-
};
|
|
561
|
+
onExtend == null ? void 0 : onExtend(!extended);
|
|
562
|
+
onExtend2 == null ? void 0 : onExtend2(id, !extended);
|
|
563
|
+
}, [extendable, onExtend, extended, onExtend2, id]);
|
|
573
564
|
var buttonStyles = React.useMemo(function () {
|
|
574
565
|
return {
|
|
575
|
-
display: 'flex',
|
|
576
566
|
alignItems: end ? 'end' : 'start',
|
|
577
|
-
justifyContent: 'space-between',
|
|
578
|
-
padding: '6px',
|
|
579
567
|
"float": end ? 'right' : 'left'
|
|
580
568
|
};
|
|
581
|
-
}, [end]);
|
|
582
|
-
|
|
583
|
-
var childrenWithParentProps = React__default.Children.map(children, function (child) {
|
|
584
|
-
return React__default.cloneElement(child, {
|
|
585
|
-
extended: extended
|
|
586
|
-
});
|
|
587
|
-
});
|
|
588
|
-
return React__default.createElement("div", {
|
|
589
|
-
id: id,
|
|
590
|
-
ref: ref,
|
|
591
|
-
"data-handler-id": handlerId,
|
|
592
|
-
className: className + " item",
|
|
593
|
-
style: _extends({}, itemStyles, stylesFromProps),
|
|
594
|
-
onMouseEnter: function onMouseEnter() {
|
|
595
|
-
return setHovered(true);
|
|
596
|
-
},
|
|
597
|
-
onMouseLeave: function onMouseLeave() {
|
|
598
|
-
return setHovered(false);
|
|
599
|
-
}
|
|
600
|
-
}, React__default.createElement("div", {
|
|
601
|
-
style: containerStyle
|
|
602
|
-
}, (draggable != null ? draggable : enabled) && isHovered && React__default.createElement("div", {
|
|
603
|
-
style: overlayStyles
|
|
604
|
-
}, React__default.createElement("div", {
|
|
605
|
-
style: buttonStyles
|
|
606
|
-
}, React__default.createElement("div", {
|
|
607
|
-
ref: drag
|
|
608
|
-
}, React__default.createElement(Icon, {
|
|
609
|
-
name: "moveArrows",
|
|
610
|
-
size: iconSize,
|
|
611
|
-
styles: {
|
|
612
|
-
color: iconColor
|
|
613
|
-
}
|
|
614
|
-
})), extendable && React__default.createElement(Icon, {
|
|
615
|
-
name: vertical ? 'verticalExtend' : 'horizontalExtend',
|
|
616
|
-
size: iconSize,
|
|
617
|
-
styles: {
|
|
618
|
-
color: iconColor,
|
|
619
|
-
marginLeft: '8px'
|
|
620
|
-
},
|
|
621
|
-
onClick: handleExtend
|
|
622
|
-
}))), childrenWithParentProps));
|
|
623
|
-
}
|
|
624
|
-
|
|
625
|
-
function GridArea(_ref) {
|
|
626
|
-
var className = _ref.className,
|
|
627
|
-
vertical = _ref.vertical,
|
|
628
|
-
reverse = _ref.reverse,
|
|
629
|
-
stretch = _ref.stretch,
|
|
630
|
-
end = _ref.end,
|
|
631
|
-
droppable = _ref.droppable,
|
|
632
|
-
align = _ref.align,
|
|
633
|
-
onAlignChange = _ref.onAlignChange,
|
|
634
|
-
location = _ref.location,
|
|
635
|
-
children = _ref.children,
|
|
636
|
-
styles = _ref.styles,
|
|
637
|
-
editorStyles = _ref.editorStyles,
|
|
638
|
-
_ref$iconColor = _ref.iconColor,
|
|
639
|
-
iconColor = _ref$iconColor === void 0 ? '#FFFFFF' : _ref$iconColor;
|
|
640
|
-
|
|
641
|
-
var _useEditorMode = useEditorMode(),
|
|
642
|
-
enabled = _useEditorMode.enabled;
|
|
643
|
-
|
|
644
|
-
var handleAlignChange = React.useCallback(function (align) {
|
|
645
|
-
switch (align) {
|
|
646
|
-
case 'start':
|
|
647
|
-
onAlignChange == null ? void 0 : onAlignChange('centered');
|
|
648
|
-
break;
|
|
649
|
-
|
|
650
|
-
case 'centered':
|
|
651
|
-
onAlignChange == null ? void 0 : onAlignChange('end');
|
|
652
|
-
break;
|
|
653
|
-
|
|
654
|
-
default:
|
|
655
|
-
onAlignChange == null ? void 0 : onAlignChange('start');
|
|
656
|
-
break;
|
|
657
|
-
}
|
|
658
|
-
}, [onAlignChange]); // ***************************************
|
|
659
|
-
// Drop logic
|
|
660
|
-
|
|
661
|
-
var _useDrop = reactDnd.useDrop(function () {
|
|
569
|
+
}, [end]);
|
|
570
|
+
var ctx = React.useMemo(function () {
|
|
662
571
|
return {
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
572
|
+
id: id,
|
|
573
|
+
editing: editing,
|
|
574
|
+
isDragging: isDragging,
|
|
575
|
+
isHovered: isHovered,
|
|
576
|
+
extended: extended,
|
|
577
|
+
extendable: extendable,
|
|
578
|
+
disabled: disabled,
|
|
579
|
+
index: index
|
|
580
|
+
};
|
|
581
|
+
}, [disabled, editing, extendable, extended, id, index, isDragging, isHovered]);
|
|
582
|
+
return React__default.createElement(reactBeautifulDnd.Draggable, {
|
|
583
|
+
draggableId: id,
|
|
584
|
+
index: index,
|
|
585
|
+
isDragDisabled: disabled
|
|
586
|
+
}, function (provided, snapshot) {
|
|
587
|
+
return React__default.createElement("div", Object.assign({
|
|
588
|
+
ref: provided.innerRef
|
|
589
|
+
}, provided.draggableProps, {
|
|
590
|
+
className: className + " item",
|
|
591
|
+
style: _extends({
|
|
592
|
+
flex: extended && !snapshot.isDragging ? 'auto' : undefined,
|
|
593
|
+
opacity: snapshot.isDragging ? 0.5 : 1
|
|
594
|
+
}, editing ? editorStyle : style, provided.draggableProps.style),
|
|
595
|
+
onMouseEnter: function onMouseEnter() {
|
|
596
|
+
return setHovered(true);
|
|
668
597
|
},
|
|
669
|
-
|
|
670
|
-
return
|
|
671
|
-
isOver: monitor.isOver()
|
|
672
|
-
};
|
|
598
|
+
onMouseLeave: function onMouseLeave() {
|
|
599
|
+
return setHovered(false);
|
|
673
600
|
}
|
|
674
|
-
}
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
vertical: vertical,
|
|
708
|
-
location: location
|
|
709
|
-
});
|
|
601
|
+
}), React__default.createElement("div", {
|
|
602
|
+
style: {
|
|
603
|
+
width: '100%',
|
|
604
|
+
height: '100%',
|
|
605
|
+
pointerEvents: editing ? 'none' : undefined
|
|
606
|
+
}
|
|
607
|
+
}, typeof children === 'function' ? children(ctx) : children), React__default.createElement("div", {
|
|
608
|
+
className: "overlay",
|
|
609
|
+
style: {
|
|
610
|
+
display: !disabled && editing && isHovered && (snapshot.isDragging || !isDragging) ? 'block' : 'none'
|
|
611
|
+
}
|
|
612
|
+
}, React__default.createElement("div", {
|
|
613
|
+
className: "overlay-buttons",
|
|
614
|
+
style: buttonStyles
|
|
615
|
+
}, React__default.createElement("div", Object.assign({}, provided.dragHandleProps), React__default.createElement(Icon, {
|
|
616
|
+
name: "moveArrows",
|
|
617
|
+
size: iconSize,
|
|
618
|
+
style: {
|
|
619
|
+
color: iconColor
|
|
620
|
+
}
|
|
621
|
+
})), extendable && React__default.createElement("div", {
|
|
622
|
+
style: {
|
|
623
|
+
cursor: 'pointer',
|
|
624
|
+
marginLeft: '8px'
|
|
625
|
+
},
|
|
626
|
+
onClick: handleExtend
|
|
627
|
+
}, React__default.createElement(Icon, {
|
|
628
|
+
name: vertical ? 'verticalExtend' : 'horizontalExtend',
|
|
629
|
+
size: iconSize,
|
|
630
|
+
style: {
|
|
631
|
+
color: iconColor
|
|
632
|
+
}
|
|
633
|
+
})))));
|
|
710
634
|
});
|
|
711
|
-
return React__default.createElement("div", {
|
|
712
|
-
ref: drop,
|
|
713
|
-
className: "\n " + className + "\n area\n " + (stretch && 'stretch') + "\n " + (end && 'end') + "\n " + (align === 'centered' ? 'just-centered' : align === 'end' ? 'just-end' : 'start') + "\n " + (vertical ? reverse ? 'vertical-r' : 'vertical' : reverse ? 'horizontal-r' : 'horizontal') + "\n " + (enabled ? 'area-transition-in' : 'area-transition-out') + "\n ",
|
|
714
|
-
style: _extends({}, mainStyles, stylesFromProps)
|
|
715
|
-
}, childrenWithParentProps, React__default.createElement("div", {
|
|
716
|
-
style: buttonStyle
|
|
717
|
-
}, React__default.createElement(Icon, {
|
|
718
|
-
name: align === 'centered' ? vertical ? 'alignCenterV' : 'alignCenter' : align === 'end' ? vertical ? 'alignEndV' : 'alignEnd' : vertical ? 'alignStartV' : 'alignStart',
|
|
719
|
-
styles: {
|
|
720
|
-
color: iconColor,
|
|
721
|
-
cursor: (droppable != null ? droppable : enabled) && align && !!React__default.Children.count(children) ? 'pointer' : 'default'
|
|
722
|
-
},
|
|
723
|
-
onClick: (droppable != null ? droppable : enabled) && align && !!React__default.Children.count(children) ? function () {
|
|
724
|
-
return handleAlignChange(align);
|
|
725
|
-
} : undefined
|
|
726
|
-
})));
|
|
727
635
|
}
|
|
728
636
|
|
|
729
637
|
exports.GridArea = GridArea;
|