react-align 1.1.7 → 2.0.3
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 +30 -41
- 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 +223 -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 +224 -318
- package/dist/react-align.esm.js.map +1 -1
- package/package.json +4 -9
- package/src/GridArea.tsx +152 -0
- package/src/GridItem.tsx +153 -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.onAlignChange,
|
|
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,285 +435,42 @@ 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
|
-
ITEM: 'react-align_item',
|
|
416
|
-
GROUP: 'react-align_group'
|
|
417
|
-
};
|
|
418
|
-
function GridItem(_ref) {
|
|
419
|
-
var className = _ref.className,
|
|
420
|
-
children = _ref.children,
|
|
421
|
-
id = _ref.id,
|
|
422
|
-
index = _ref.index,
|
|
423
|
-
extendable = _ref.extendable,
|
|
424
|
-
extended = _ref.extended,
|
|
425
|
-
draggable = _ref.draggable,
|
|
426
|
-
onReorder = _ref.onReorder,
|
|
427
|
-
onMoveArea = _ref.onMoveArea,
|
|
428
|
-
onExtend = _ref.onExtend,
|
|
429
|
-
location = _ref.location,
|
|
430
|
-
end = _ref.end,
|
|
431
|
-
vertical = _ref.vertical,
|
|
432
|
-
styles = _ref.styles,
|
|
433
|
-
editorStyles = _ref.editorStyles,
|
|
434
|
-
iconSize = _ref.iconSize,
|
|
435
|
-
_ref$iconColor = _ref.iconColor,
|
|
436
|
-
iconColor = _ref$iconColor === void 0 ? 'rgb(255, 255, 255)' : _ref$iconColor;
|
|
437
|
-
var ref = React.useRef(null);
|
|
438
|
-
|
|
439
|
-
var _useEditorMode = useEditorMode(),
|
|
440
|
-
enabled = _useEditorMode.enabled;
|
|
441
|
-
|
|
442
|
-
var _useState = React.useState(false),
|
|
443
|
-
isHovered = _useState[0],
|
|
444
|
-
setHovered = _useState[1];
|
|
445
|
-
|
|
446
|
-
var dragIndexRef = React.useRef();
|
|
447
|
-
|
|
448
|
-
var handleExtend = function handleExtend() {
|
|
449
|
-
if (!extendable || !onExtend) return;
|
|
450
|
-
setHovered(false);
|
|
451
|
-
onExtend(id, !extended);
|
|
452
|
-
}; // ***************************************
|
|
453
|
-
// Drag n drop logic
|
|
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 == null ? void 0 : 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 == null ? void 0 : 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
|
-
};
|
|
573
|
-
var buttonStyles = React.useMemo(function () {
|
|
574
|
-
return {
|
|
575
|
-
display: 'flex',
|
|
576
|
-
alignItems: end ? 'end' : 'start',
|
|
577
|
-
justifyContent: 'space-between',
|
|
578
|
-
padding: '6px',
|
|
579
|
-
"float": end ? 'right' : 'left'
|
|
580
|
-
};
|
|
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
|
-
|
|
449
|
+
var alignments = ['start', 'centered', 'end'];
|
|
625
450
|
function GridArea(_ref) {
|
|
626
|
-
var
|
|
451
|
+
var id = _ref.id,
|
|
452
|
+
className = _ref.className,
|
|
627
453
|
vertical = _ref.vertical,
|
|
628
|
-
reverse = _ref.reverse,
|
|
629
454
|
stretch = _ref.stretch,
|
|
630
455
|
end = _ref.end,
|
|
631
|
-
|
|
456
|
+
disabled = _ref.disabled,
|
|
632
457
|
align = _ref.align,
|
|
633
458
|
onAlignChange = _ref.onAlignChange,
|
|
634
|
-
location = _ref.location,
|
|
635
459
|
children = _ref.children,
|
|
636
|
-
|
|
637
|
-
|
|
460
|
+
style = _ref.style,
|
|
461
|
+
editorStyle = _ref.editorStyle,
|
|
638
462
|
_ref$iconColor = _ref.iconColor,
|
|
639
463
|
iconColor = _ref$iconColor === void 0 ? '#FFFFFF' : _ref$iconColor;
|
|
640
464
|
|
|
641
|
-
var
|
|
642
|
-
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 () {
|
|
662
|
-
return {
|
|
663
|
-
accept: [ItemType.ITEM, ItemType.GROUP],
|
|
664
|
-
drop: function drop() {
|
|
665
|
-
return {
|
|
666
|
-
location: location
|
|
667
|
-
};
|
|
668
|
-
},
|
|
669
|
-
collect: function collect(monitor) {
|
|
670
|
-
return {
|
|
671
|
-
isOver: monitor.isOver()
|
|
672
|
-
};
|
|
673
|
-
}
|
|
674
|
-
};
|
|
675
|
-
}),
|
|
676
|
-
isOver = _useDrop[0].isOver,
|
|
677
|
-
drop = _useDrop[1]; // ***************************************
|
|
678
|
-
// ***************************************
|
|
679
|
-
// Internal styles used
|
|
680
|
-
|
|
465
|
+
var _useAlignContext = useAlignContext(),
|
|
466
|
+
enabled = _useAlignContext.editing,
|
|
467
|
+
onAlignChange2 = _useAlignContext.onAlignChange;
|
|
681
468
|
|
|
469
|
+
var handleAlignChange = React.useCallback(function () {
|
|
470
|
+
var a = alignments[(align ? alignments.indexOf(align) + 1 : 0) % alignments.length];
|
|
471
|
+
onAlignChange == null ? void 0 : onAlignChange(a);
|
|
472
|
+
onAlignChange2 == null ? void 0 : onAlignChange2(id, a);
|
|
473
|
+
}, [align, onAlignChange, onAlignChange2, id]);
|
|
682
474
|
var buttonStyle = React.useMemo(function () {
|
|
683
475
|
return {
|
|
684
476
|
position: 'absolute',
|
|
@@ -686,44 +478,158 @@ function GridArea(_ref) {
|
|
|
686
478
|
right: vertical ? !end ? 0 : undefined : '50%',
|
|
687
479
|
bottom: !vertical && !end ? 0 : vertical ? '50%' : undefined,
|
|
688
480
|
top: vertical ? '50%' : end ? 0 : undefined,
|
|
689
|
-
opacity:
|
|
481
|
+
opacity: !disabled && enabled && align ? 1 : 0,
|
|
482
|
+
pointerEvents: !disabled && enabled && align ? 'auto' : 'none',
|
|
690
483
|
transition: 'all 0.5s ease-in-out'
|
|
691
484
|
};
|
|
692
|
-
}, [vertical, end,
|
|
693
|
-
var mainStyles = React.useMemo(function () {
|
|
694
|
-
return {
|
|
695
|
-
opacity: isOver ? 0.8 : 1,
|
|
696
|
-
minHeight: !React__default.Children.count(children) && !enabled ? '0px' : '26px',
|
|
697
|
-
minWidth: !React__default.Children.count(children) && !enabled ? '0px' : '46px'
|
|
698
|
-
};
|
|
699
|
-
}, [isOver, children, enabled]);
|
|
700
|
-
var stylesFromProps = enabled ? editorStyles : styles; // ***************************************
|
|
701
|
-
// Rebuilds the GridItem children to receive their parent GridArea's 'end' and 'vertical' values.
|
|
485
|
+
}, [vertical, end, disabled, enabled, align]); // Rebuilds the GridItem children to receive their parent GridArea's 'end' and 'vertical' values.
|
|
702
486
|
// Used to know where to align the overlay buttons (end) and how to extend the GridItems (vertical).
|
|
703
487
|
|
|
704
|
-
var childrenWithParentProps =
|
|
705
|
-
return React__default.
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
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
|
+
});
|
|
709
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
|
+
|
|
527
|
+
function GridItem(_ref) {
|
|
528
|
+
var className = _ref.className,
|
|
529
|
+
children = _ref.children,
|
|
530
|
+
id = _ref.id,
|
|
531
|
+
index = _ref.index,
|
|
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,
|
|
538
|
+
style = _ref.style,
|
|
539
|
+
editorStyle = _ref.editorStyle,
|
|
540
|
+
iconSize = _ref.iconSize,
|
|
541
|
+
_ref$iconColor = _ref.iconColor,
|
|
542
|
+
iconColor = _ref$iconColor === void 0 ? 'rgb(255, 255, 255)' : _ref$iconColor,
|
|
543
|
+
props = _objectWithoutPropertiesLoose(_ref, ["className", "children", "id", "index", "extendable", "extended", "disabled", "style", "editorStyle", "iconSize", "iconColor"]);
|
|
544
|
+
|
|
545
|
+
var end = props.end,
|
|
546
|
+
vertical = props.vertical;
|
|
547
|
+
|
|
548
|
+
var _useAlignContext = useAlignContext(),
|
|
549
|
+
editing = _useAlignContext.editing,
|
|
550
|
+
isDragging = _useAlignContext.isDragging,
|
|
551
|
+
onExtend = _useAlignContext.onExtend;
|
|
552
|
+
|
|
553
|
+
var _useState = React.useState(false),
|
|
554
|
+
isHovered = _useState[0],
|
|
555
|
+
setHovered = _useState[1];
|
|
556
|
+
|
|
557
|
+
var handleExtend = React.useCallback(function () {
|
|
558
|
+
if (!extendable) return;
|
|
559
|
+
setHovered(false);
|
|
560
|
+
onExtend == null ? void 0 : onExtend(id, !extended);
|
|
561
|
+
}, [extendable, onExtend, extended, id]);
|
|
562
|
+
var buttonStyles = React.useMemo(function () {
|
|
563
|
+
return {
|
|
564
|
+
alignItems: end ? 'end' : 'start',
|
|
565
|
+
"float": end ? 'right' : 'left'
|
|
566
|
+
};
|
|
567
|
+
}, [end]);
|
|
568
|
+
var ctx = React.useMemo(function () {
|
|
569
|
+
return {
|
|
570
|
+
id: id,
|
|
571
|
+
editing: editing,
|
|
572
|
+
isDragging: isDragging,
|
|
573
|
+
isHovered: isHovered,
|
|
574
|
+
extended: extended,
|
|
575
|
+
extendable: extendable,
|
|
576
|
+
disabled: disabled,
|
|
577
|
+
index: index
|
|
578
|
+
};
|
|
579
|
+
}, [disabled, editing, extendable, extended, id, index, isDragging, isHovered]);
|
|
580
|
+
return React__default.createElement(reactBeautifulDnd.Draggable, {
|
|
581
|
+
draggableId: id,
|
|
582
|
+
index: index,
|
|
583
|
+
isDragDisabled: disabled
|
|
584
|
+
}, function (provided, snapshot) {
|
|
585
|
+
return React__default.createElement("div", Object.assign({
|
|
586
|
+
ref: provided.innerRef
|
|
587
|
+
}, provided.draggableProps, {
|
|
588
|
+
className: className + " item",
|
|
589
|
+
style: _extends({
|
|
590
|
+
flex: extended && !snapshot.isDragging ? 'auto' : undefined,
|
|
591
|
+
opacity: snapshot.isDragging ? 0.5 : 1
|
|
592
|
+
}, editing ? editorStyle : style, provided.draggableProps.style),
|
|
593
|
+
onMouseEnter: function onMouseEnter() {
|
|
594
|
+
return setHovered(true);
|
|
595
|
+
},
|
|
596
|
+
onMouseLeave: function onMouseLeave() {
|
|
597
|
+
return setHovered(false);
|
|
598
|
+
}
|
|
599
|
+
}), React__default.createElement("div", {
|
|
600
|
+
style: {
|
|
601
|
+
width: '100%',
|
|
602
|
+
height: '100%',
|
|
603
|
+
pointerEvents: editing ? 'none' : undefined
|
|
604
|
+
}
|
|
605
|
+
}, typeof children === 'function' ? children(ctx) : children), React__default.createElement("div", {
|
|
606
|
+
className: "overlay",
|
|
607
|
+
style: {
|
|
608
|
+
display: !disabled && editing && isHovered && (snapshot.isDragging || !isDragging) ? 'block' : 'none'
|
|
609
|
+
}
|
|
610
|
+
}, React__default.createElement("div", {
|
|
611
|
+
className: "overlay-buttons",
|
|
612
|
+
style: buttonStyles
|
|
613
|
+
}, React__default.createElement("div", Object.assign({}, provided.dragHandleProps), React__default.createElement(Icon, {
|
|
614
|
+
name: "moveArrows",
|
|
615
|
+
size: iconSize,
|
|
616
|
+
style: {
|
|
617
|
+
color: iconColor
|
|
618
|
+
}
|
|
619
|
+
})), extendable && React__default.createElement("div", {
|
|
620
|
+
style: {
|
|
621
|
+
cursor: 'pointer',
|
|
622
|
+
marginLeft: '8px'
|
|
623
|
+
},
|
|
624
|
+
onClick: handleExtend
|
|
625
|
+
}, React__default.createElement(Icon, {
|
|
626
|
+
name: vertical ? 'verticalExtend' : 'horizontalExtend',
|
|
627
|
+
size: iconSize,
|
|
628
|
+
style: {
|
|
629
|
+
color: iconColor
|
|
630
|
+
}
|
|
631
|
+
})))));
|
|
710
632
|
});
|
|
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
633
|
}
|
|
728
634
|
|
|
729
635
|
exports.GridArea = GridArea;
|