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.
@@ -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 reactDnd = require('react-dnd');
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 EditorModeContext = /*#__PURE__*/React.createContext({
14
- enabled: undefined
12
+ var Context = /*#__PURE__*/React.createContext({
13
+ editing: false,
14
+ isDragging: false
15
15
  });
16
- var useEditorMode = function useEditorMode() {
17
- return React.useContext(EditorModeContext);
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}.vertical{flex-direction:column}.vertical-r{flex-direction:column-reverse}.horizontal{flex-direction:row}.horizontal-r{flex-direction:row-reverse}.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}";
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
- enabled = _ref.enabled,
52
+ editing = _ref.editing,
53
53
  vertical = _ref.vertical,
54
54
  stretch = _ref.stretch,
55
- styles = _ref.styles,
56
- editorStyles = _ref.editorStyles,
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: enabled ? editorStyles : styles
61
- }, React__default.createElement(reactDnd.DndProvider, {
62
- backend: reactDndHtml5Backend.HTML5Backend
63
- }, React__default.createElement(EditorModeContext.Provider, {
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
- enabled: enabled
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
- styles = _ref.styles,
95
- editorStyles = _ref.editorStyles,
129
+ style = _ref.style,
130
+ editorStyle = _ref.editorStyle,
96
131
  children = _ref.children;
97
132
 
98
- var _useEditorMode = useEditorMode(),
99
- enabled = _useEditorMode.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 && 'horizontal') + " " + (stretch && 'stretch'),
104
- style: _extends({}, stylesFromProps, {
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
- onClick = _ref.onClick,
404
- styles = _ref.styles;
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: styles,
444
+ style: style,
410
445
  onClick: onClick
411
446
  }));
412
447
  };
413
448
 
414
- var ItemType = {
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 className = _ref.className,
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
- droppable = _ref.droppable,
456
+ disabled = _ref.disabled,
632
457
  align = _ref.align,
633
458
  onAlignChange = _ref.onAlignChange,
634
- location = _ref.location,
635
459
  children = _ref.children,
636
- styles = _ref.styles,
637
- editorStyles = _ref.editorStyles,
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 _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 () {
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: (droppable != null ? droppable : enabled) && align ? 1 : 0,
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, droppable, enabled, align]);
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 = React__default.Children.map(children, function (child) {
705
- return React__default.cloneElement(child, {
706
- end: end,
707
- vertical: vertical,
708
- location: location
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;