@innovaccer/design-system 2.23.3 → 2.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +73 -0
- package/css/dist/index.css +129 -1
- package/css/dist/index.css.map +1 -1
- package/css/src/components/card.css +0 -1
- package/css/src/components/listbox.css +115 -0
- package/css/src/core/animation.css +11 -0
- package/dist/.lib/tsconfig.type.tsbuildinfo +209 -4
- package/dist/core/components/organisms/listbox/Listbox.d.ts +33 -0
- package/dist/core/components/organisms/listbox/index.d.ts +3 -0
- package/dist/core/components/organisms/listbox/listboxItem/ListBody.d.ts +3 -0
- package/dist/core/components/organisms/listbox/listboxItem/ListboxItem.d.ts +23 -0
- package/dist/core/components/organisms/listbox/listboxItem/index.d.ts +1 -0
- package/dist/core/components/organisms/listbox/nestedList/Animation.d.ts +2 -0
- package/dist/core/components/organisms/listbox/nestedList/NestedList.d.ts +7 -0
- package/dist/core/components/organisms/listbox/nestedList/index.d.ts +1 -0
- package/dist/core/components/organisms/listbox/reorderList/Draggable.d.ts +71 -0
- package/dist/core/components/organisms/listbox/reorderList/DraggableList.d.ts +2 -0
- package/dist/core/components/organisms/listbox/reorderList/index.d.ts +1 -0
- package/dist/core/components/organisms/listbox/reorderList/types.d.ts +46 -0
- package/dist/core/components/organisms/listbox/reorderList/utils.d.ts +10 -0
- package/dist/core/components/organisms/listbox/utils.d.ts +1 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.type.d.ts +1 -0
- package/dist/index.esm.js +1043 -86
- package/dist/index.js +925 -3
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.br +0 -0
- package/dist/index.umd.js.gz +0 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
2
|
/**
|
|
3
|
-
* Generated on:
|
|
3
|
+
* Generated on: 1699952738884
|
|
4
4
|
* Package: @innovaccer/design-system
|
|
5
|
-
* Version: v2.
|
|
5
|
+
* Version: v2.25.0
|
|
6
6
|
* License: MIT
|
|
7
7
|
* Docs: https://innovaccer.github.io/design-system
|
|
8
8
|
*/
|
|
@@ -16579,7 +16579,928 @@
|
|
|
16579
16579
|
SelectionCard.useMultiSelect = useMultiSelect;
|
|
16580
16580
|
SelectionCard.useSingleSelect = useSingleSelect;
|
|
16581
16581
|
|
|
16582
|
-
|
|
16582
|
+
function arrayMove(array, from, to) {
|
|
16583
|
+
array = array.slice();
|
|
16584
|
+
array.splice(to < 0 ? array.length + to : to, 0, array.splice(from, 1)[0]);
|
|
16585
|
+
return array;
|
|
16586
|
+
}
|
|
16587
|
+
function getTranslateOffset(element) {
|
|
16588
|
+
var style = window.getComputedStyle(element);
|
|
16589
|
+
return Math.max(parseInt(style['margin-top'], 10), parseInt(style['margin-bottom'], 10)) + element.getBoundingClientRect().height;
|
|
16590
|
+
}
|
|
16591
|
+
function isTouchEvent(event) {
|
|
16592
|
+
return event.touches && event.touches.length || event.changedTouches && event.changedTouches.length;
|
|
16593
|
+
}
|
|
16594
|
+
function transformItem(element, offsetY, offsetX) {
|
|
16595
|
+
if (offsetY === void 0) {
|
|
16596
|
+
offsetY = 0;
|
|
16597
|
+
}
|
|
16598
|
+
|
|
16599
|
+
if (offsetX === void 0) {
|
|
16600
|
+
offsetX = 0;
|
|
16601
|
+
}
|
|
16602
|
+
|
|
16603
|
+
if (!element) return;
|
|
16604
|
+
|
|
16605
|
+
if (offsetY === null || offsetX === null) {
|
|
16606
|
+
element.style.removeProperty('transform');
|
|
16607
|
+
return;
|
|
16608
|
+
}
|
|
16609
|
+
|
|
16610
|
+
element.style.transform = "translate(" + offsetX + "px, " + offsetY + "px)";
|
|
16611
|
+
}
|
|
16612
|
+
function setItemTransition(element, duration, timing) {
|
|
16613
|
+
if (element) {
|
|
16614
|
+
element.style['transition'] = "transform " + duration + "ms" + (timing ? " " + timing : '');
|
|
16615
|
+
}
|
|
16616
|
+
}
|
|
16617
|
+
function binarySearch(array, targetValue) {
|
|
16618
|
+
var min = 0;
|
|
16619
|
+
var max = array.length - 1;
|
|
16620
|
+
var guess;
|
|
16621
|
+
|
|
16622
|
+
while (min <= max) {
|
|
16623
|
+
guess = Math.floor((max + min) / 2);
|
|
16624
|
+
|
|
16625
|
+
if (!array[guess + 1] || array[guess] <= targetValue && array[guess + 1] >= targetValue) {
|
|
16626
|
+
return guess;
|
|
16627
|
+
} else if (array[guess] < targetValue && array[guess + 1] < targetValue) {
|
|
16628
|
+
min = guess + 1;
|
|
16629
|
+
} else {
|
|
16630
|
+
max = guess - 1;
|
|
16631
|
+
}
|
|
16632
|
+
}
|
|
16633
|
+
|
|
16634
|
+
return -1;
|
|
16635
|
+
}
|
|
16636
|
+
var schd = function schd(fn) {
|
|
16637
|
+
var lastArgs = [];
|
|
16638
|
+
var frameId = null;
|
|
16639
|
+
|
|
16640
|
+
var wrapperFn = function wrapperFn() {
|
|
16641
|
+
var args = [];
|
|
16642
|
+
|
|
16643
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
16644
|
+
args[_i] = arguments[_i];
|
|
16645
|
+
}
|
|
16646
|
+
|
|
16647
|
+
lastArgs = args;
|
|
16648
|
+
|
|
16649
|
+
if (frameId) {
|
|
16650
|
+
return;
|
|
16651
|
+
}
|
|
16652
|
+
|
|
16653
|
+
frameId = requestAnimationFrame(function () {
|
|
16654
|
+
frameId = null;
|
|
16655
|
+
fn.apply(void 0, lastArgs);
|
|
16656
|
+
});
|
|
16657
|
+
};
|
|
16658
|
+
|
|
16659
|
+
wrapperFn.cancel = function () {
|
|
16660
|
+
if (frameId) {
|
|
16661
|
+
cancelAnimationFrame(frameId);
|
|
16662
|
+
}
|
|
16663
|
+
};
|
|
16664
|
+
|
|
16665
|
+
return wrapperFn;
|
|
16666
|
+
};
|
|
16667
|
+
|
|
16668
|
+
var AUTOSCROLL_ACTIVE_OFFSET = 200;
|
|
16669
|
+
var AUTOSCROLL_SPEED_RATIO = 10;
|
|
16670
|
+
|
|
16671
|
+
var Draggable = function (_super) {
|
|
16672
|
+
__extends(Draggable, _super);
|
|
16673
|
+
|
|
16674
|
+
function Draggable(props) {
|
|
16675
|
+
var _this = _super.call(this, props) || this;
|
|
16676
|
+
|
|
16677
|
+
_this.listRef = /*#__PURE__*/React__namespace.createRef();
|
|
16678
|
+
_this.ghostRef = /*#__PURE__*/React__namespace.createRef();
|
|
16679
|
+
_this.topOffsets = [];
|
|
16680
|
+
_this.itemTranslateOffsets = [];
|
|
16681
|
+
_this.initialYOffset = 0;
|
|
16682
|
+
_this.lastScroll = 0;
|
|
16683
|
+
_this.lastYOffset = 0;
|
|
16684
|
+
_this.lastListYOffset = 0;
|
|
16685
|
+
_this.needle = -1;
|
|
16686
|
+
_this.afterIndex = -2;
|
|
16687
|
+
_this.state = {
|
|
16688
|
+
itemDragged: -1,
|
|
16689
|
+
itemDraggedOutOfBounds: -1,
|
|
16690
|
+
selectedItem: -1,
|
|
16691
|
+
initialX: 0,
|
|
16692
|
+
initialY: 0,
|
|
16693
|
+
targetX: 0,
|
|
16694
|
+
targetY: 0,
|
|
16695
|
+
targetHeight: 0,
|
|
16696
|
+
targetWidth: 0,
|
|
16697
|
+
scrollingSpeed: 0,
|
|
16698
|
+
scrollWindow: false
|
|
16699
|
+
};
|
|
16700
|
+
|
|
16701
|
+
_this.doScrolling = function () {
|
|
16702
|
+
var _a = _this.state,
|
|
16703
|
+
scrollingSpeed = _a.scrollingSpeed,
|
|
16704
|
+
scrollWindow = _a.scrollWindow;
|
|
16705
|
+
var listEl = _this.listRef.current;
|
|
16706
|
+
window.requestAnimationFrame(function () {
|
|
16707
|
+
if (scrollWindow) {
|
|
16708
|
+
window.scrollTo(window.pageXOffset, window.pageYOffset + scrollingSpeed * 1.5);
|
|
16709
|
+
} else {
|
|
16710
|
+
listEl.scrollTop += scrollingSpeed;
|
|
16711
|
+
}
|
|
16712
|
+
|
|
16713
|
+
if (scrollingSpeed !== 0) {
|
|
16714
|
+
_this.doScrolling();
|
|
16715
|
+
}
|
|
16716
|
+
});
|
|
16717
|
+
};
|
|
16718
|
+
|
|
16719
|
+
_this.getChildren = function () {
|
|
16720
|
+
if (_this.listRef && _this.listRef.current) {
|
|
16721
|
+
return Array.from(_this.listRef.current.children);
|
|
16722
|
+
}
|
|
16723
|
+
|
|
16724
|
+
return [];
|
|
16725
|
+
};
|
|
16726
|
+
|
|
16727
|
+
_this.calculateOffsets = function () {
|
|
16728
|
+
_this.topOffsets = _this.getChildren().map(function (item) {
|
|
16729
|
+
return item.getBoundingClientRect().top;
|
|
16730
|
+
});
|
|
16731
|
+
_this.itemTranslateOffsets = _this.getChildren().map(function (item) {
|
|
16732
|
+
return getTranslateOffset(item);
|
|
16733
|
+
});
|
|
16734
|
+
};
|
|
16735
|
+
|
|
16736
|
+
_this.getTargetIndex = function (e) {
|
|
16737
|
+
return _this.getChildren().findIndex(function (child) {
|
|
16738
|
+
return child === e.target || child.contains(e.target);
|
|
16739
|
+
});
|
|
16740
|
+
};
|
|
16741
|
+
|
|
16742
|
+
_this.onMouseOrTouchStart = function (e) {
|
|
16743
|
+
var _a;
|
|
16744
|
+
|
|
16745
|
+
if (_this.dropTimeout && _this.state.itemDragged > -1) {
|
|
16746
|
+
window.clearTimeout(_this.dropTimeout);
|
|
16747
|
+
|
|
16748
|
+
_this.finishDrop();
|
|
16749
|
+
}
|
|
16750
|
+
|
|
16751
|
+
var isTouch = isTouchEvent(e);
|
|
16752
|
+
if (!isTouch && e.button !== 0) return;
|
|
16753
|
+
|
|
16754
|
+
var index = _this.getTargetIndex(e);
|
|
16755
|
+
|
|
16756
|
+
var listItemTouched = _this.getChildren()[index];
|
|
16757
|
+
|
|
16758
|
+
var isValidDragHandle = (_a = e.target) === null || _a === void 0 ? void 0 : _a.classList.contains('Listbox-item--drag-icon');
|
|
16759
|
+
if (!isValidDragHandle) return;
|
|
16760
|
+
e.preventDefault();
|
|
16761
|
+
|
|
16762
|
+
if (isTouch) {
|
|
16763
|
+
var opts = {
|
|
16764
|
+
passive: false
|
|
16765
|
+
};
|
|
16766
|
+
listItemTouched.style.touchAction = 'none';
|
|
16767
|
+
document.addEventListener('touchend', _this.schdOnEnd, opts);
|
|
16768
|
+
document.addEventListener('touchmove', _this.schdOnTouchMove, opts);
|
|
16769
|
+
document.addEventListener('touchcancel', _this.schdOnEnd, opts);
|
|
16770
|
+
} else {
|
|
16771
|
+
document.addEventListener('mousemove', _this.schdOnMouseMove);
|
|
16772
|
+
document.addEventListener('mouseup', _this.schdOnEnd);
|
|
16773
|
+
|
|
16774
|
+
var listItemDragged = _this.getChildren()[_this.state.itemDragged];
|
|
16775
|
+
|
|
16776
|
+
if (listItemDragged && listItemDragged.style) {
|
|
16777
|
+
listItemDragged.style.touchAction = '';
|
|
16778
|
+
}
|
|
16779
|
+
}
|
|
16780
|
+
|
|
16781
|
+
_this.onStart(listItemTouched, isTouch ? e.touches[0].clientX : e.clientX, isTouch ? e.touches[0].clientY : e.clientY, index);
|
|
16782
|
+
};
|
|
16783
|
+
|
|
16784
|
+
_this.getYOffset = function () {
|
|
16785
|
+
var listScroll = _this.listRef.current ? _this.listRef.current.scrollTop : 0;
|
|
16786
|
+
return window.pageYOffset + listScroll;
|
|
16787
|
+
};
|
|
16788
|
+
|
|
16789
|
+
_this.onStart = function (target, clientX, clientY, index) {
|
|
16790
|
+
if (_this.state.selectedItem > -1) {
|
|
16791
|
+
_this.setState({
|
|
16792
|
+
selectedItem: -1
|
|
16793
|
+
});
|
|
16794
|
+
|
|
16795
|
+
_this.needle = -1;
|
|
16796
|
+
}
|
|
16797
|
+
|
|
16798
|
+
var targetRect = target.getBoundingClientRect();
|
|
16799
|
+
var targetStyles = window.getComputedStyle(target);
|
|
16800
|
+
|
|
16801
|
+
_this.calculateOffsets();
|
|
16802
|
+
|
|
16803
|
+
_this.initialYOffset = _this.getYOffset();
|
|
16804
|
+
_this.lastYOffset = window.pageYOffset;
|
|
16805
|
+
_this.lastListYOffset = _this.listRef.current.scrollTop;
|
|
16806
|
+
|
|
16807
|
+
_this.setState({
|
|
16808
|
+
itemDragged: index,
|
|
16809
|
+
targetX: targetRect.left - parseInt(targetStyles['margin-left'], 10),
|
|
16810
|
+
targetY: targetRect.top - parseInt(targetStyles['margin-top'], 10),
|
|
16811
|
+
targetHeight: targetRect.height,
|
|
16812
|
+
targetWidth: targetRect.width,
|
|
16813
|
+
initialX: clientX,
|
|
16814
|
+
initialY: clientY
|
|
16815
|
+
});
|
|
16816
|
+
};
|
|
16817
|
+
|
|
16818
|
+
_this.onMouseMove = function (e) {
|
|
16819
|
+
e.cancelable && e.preventDefault();
|
|
16820
|
+
|
|
16821
|
+
_this.onMove(e.clientX, e.clientY);
|
|
16822
|
+
};
|
|
16823
|
+
|
|
16824
|
+
_this.onTouchMove = function (e) {
|
|
16825
|
+
e.cancelable && e.preventDefault();
|
|
16826
|
+
|
|
16827
|
+
_this.onMove(e.touches[0].clientX, e.touches[0].clientY);
|
|
16828
|
+
};
|
|
16829
|
+
|
|
16830
|
+
_this.onWheel = function (e) {
|
|
16831
|
+
if (_this.state.itemDragged < 0) return;
|
|
16832
|
+
_this.lastScroll = _this.listRef.current.scrollTop += e.deltaY;
|
|
16833
|
+
|
|
16834
|
+
_this.moveOtherItems();
|
|
16835
|
+
};
|
|
16836
|
+
|
|
16837
|
+
_this.onMove = function (clientX, clientY) {
|
|
16838
|
+
if (_this.state.itemDragged === -1) return null;
|
|
16839
|
+
transformItem(_this.ghostRef.current, clientY - _this.state.initialY, _this.props.lockVertically ? 0 : clientX - _this.state.initialX);
|
|
16840
|
+
|
|
16841
|
+
_this.autoScrolling(clientY);
|
|
16842
|
+
|
|
16843
|
+
_this.moveOtherItems();
|
|
16844
|
+
|
|
16845
|
+
return;
|
|
16846
|
+
};
|
|
16847
|
+
|
|
16848
|
+
_this.moveOtherItems = function () {
|
|
16849
|
+
var targetRect = _this.ghostRef.current.getBoundingClientRect();
|
|
16850
|
+
|
|
16851
|
+
var itemVerticalCenter = targetRect.top + targetRect.height / 2;
|
|
16852
|
+
var offset = getTranslateOffset(_this.getChildren()[_this.state.itemDragged]);
|
|
16853
|
+
|
|
16854
|
+
var currentYOffset = _this.getYOffset();
|
|
16855
|
+
|
|
16856
|
+
if (_this.initialYOffset !== currentYOffset) {
|
|
16857
|
+
_this.topOffsets = _this.topOffsets.map(function (offset) {
|
|
16858
|
+
return offset - (currentYOffset - _this.initialYOffset);
|
|
16859
|
+
});
|
|
16860
|
+
_this.initialYOffset = currentYOffset;
|
|
16861
|
+
}
|
|
16862
|
+
|
|
16863
|
+
if (_this.isDraggedItemOutOfBounds() && _this.props.removableByMove) {
|
|
16864
|
+
_this.afterIndex = _this.topOffsets.length + 1;
|
|
16865
|
+
} else {
|
|
16866
|
+
_this.afterIndex = binarySearch(_this.topOffsets, itemVerticalCenter);
|
|
16867
|
+
}
|
|
16868
|
+
|
|
16869
|
+
_this.animateItems(_this.afterIndex === -1 ? 0 : _this.afterIndex, _this.state.itemDragged, offset);
|
|
16870
|
+
};
|
|
16871
|
+
|
|
16872
|
+
_this.autoScrolling = function (clientY) {
|
|
16873
|
+
var _a = _this.listRef.current.getBoundingClientRect(),
|
|
16874
|
+
top = _a.top,
|
|
16875
|
+
bottom = _a.bottom,
|
|
16876
|
+
height = _a.height;
|
|
16877
|
+
|
|
16878
|
+
var viewportHeight = window.innerHeight || document.documentElement.clientHeight;
|
|
16879
|
+
|
|
16880
|
+
if (bottom > viewportHeight && viewportHeight - clientY < AUTOSCROLL_ACTIVE_OFFSET) {
|
|
16881
|
+
_this.setState({
|
|
16882
|
+
scrollingSpeed: Math.round((AUTOSCROLL_ACTIVE_OFFSET - (viewportHeight - clientY)) / AUTOSCROLL_SPEED_RATIO),
|
|
16883
|
+
scrollWindow: true
|
|
16884
|
+
});
|
|
16885
|
+
} else if (top < 0 && clientY < AUTOSCROLL_ACTIVE_OFFSET) {
|
|
16886
|
+
_this.setState({
|
|
16887
|
+
scrollingSpeed: Math.round((AUTOSCROLL_ACTIVE_OFFSET - clientY) / -AUTOSCROLL_SPEED_RATIO),
|
|
16888
|
+
scrollWindow: true
|
|
16889
|
+
});
|
|
16890
|
+
} else {
|
|
16891
|
+
if (_this.state.scrollWindow && _this.state.scrollingSpeed !== 0) {
|
|
16892
|
+
_this.setState({
|
|
16893
|
+
scrollingSpeed: 0,
|
|
16894
|
+
scrollWindow: false
|
|
16895
|
+
});
|
|
16896
|
+
}
|
|
16897
|
+
|
|
16898
|
+
if (height + 20 < _this.listRef.current.scrollHeight) {
|
|
16899
|
+
var scrollingSpeed = 0;
|
|
16900
|
+
|
|
16901
|
+
if (clientY - top < AUTOSCROLL_ACTIVE_OFFSET) {
|
|
16902
|
+
scrollingSpeed = Math.round((AUTOSCROLL_ACTIVE_OFFSET - (clientY - top)) / -AUTOSCROLL_SPEED_RATIO);
|
|
16903
|
+
} else if (bottom - clientY < AUTOSCROLL_ACTIVE_OFFSET) {
|
|
16904
|
+
scrollingSpeed = Math.round((AUTOSCROLL_ACTIVE_OFFSET - (bottom - clientY)) / AUTOSCROLL_SPEED_RATIO);
|
|
16905
|
+
}
|
|
16906
|
+
|
|
16907
|
+
if (_this.state.scrollingSpeed !== scrollingSpeed) {
|
|
16908
|
+
_this.setState({
|
|
16909
|
+
scrollingSpeed: scrollingSpeed
|
|
16910
|
+
});
|
|
16911
|
+
}
|
|
16912
|
+
}
|
|
16913
|
+
}
|
|
16914
|
+
};
|
|
16915
|
+
|
|
16916
|
+
_this.animateItems = function (needle, movedItem, offset, animateMovedItem) {
|
|
16917
|
+
if (animateMovedItem === void 0) {
|
|
16918
|
+
animateMovedItem = false;
|
|
16919
|
+
}
|
|
16920
|
+
|
|
16921
|
+
_this.getChildren().forEach(function (item, i) {
|
|
16922
|
+
setItemTransition(item, _this.props.transitionDuration);
|
|
16923
|
+
|
|
16924
|
+
if (movedItem === i && animateMovedItem) {
|
|
16925
|
+
if (movedItem === needle) {
|
|
16926
|
+
return transformItem(item, null);
|
|
16927
|
+
}
|
|
16928
|
+
|
|
16929
|
+
transformItem(item, movedItem < needle ? _this.itemTranslateOffsets.slice(movedItem + 1, needle + 1).reduce(function (a, b) {
|
|
16930
|
+
return a + b;
|
|
16931
|
+
}, 0) : _this.itemTranslateOffsets.slice(needle, movedItem).reduce(function (a, b) {
|
|
16932
|
+
return a + b;
|
|
16933
|
+
}, 0) * -1);
|
|
16934
|
+
} else if (movedItem < needle && i > movedItem && i <= needle) {
|
|
16935
|
+
transformItem(item, -offset);
|
|
16936
|
+
} else if (i < movedItem && movedItem > needle && i >= needle) {
|
|
16937
|
+
transformItem(item, offset);
|
|
16938
|
+
} else {
|
|
16939
|
+
transformItem(item, null);
|
|
16940
|
+
}
|
|
16941
|
+
});
|
|
16942
|
+
};
|
|
16943
|
+
|
|
16944
|
+
_this.isDraggedItemOutOfBounds = function () {
|
|
16945
|
+
var initialRect = _this.getChildren()[_this.state.itemDragged].getBoundingClientRect();
|
|
16946
|
+
|
|
16947
|
+
var targetRect = _this.ghostRef.current.getBoundingClientRect();
|
|
16948
|
+
|
|
16949
|
+
if (Math.abs(initialRect.left - targetRect.left) > targetRect.width) {
|
|
16950
|
+
if (_this.state.itemDraggedOutOfBounds === -1) {
|
|
16951
|
+
_this.setState({
|
|
16952
|
+
itemDraggedOutOfBounds: _this.state.itemDragged
|
|
16953
|
+
});
|
|
16954
|
+
}
|
|
16955
|
+
|
|
16956
|
+
return true;
|
|
16957
|
+
}
|
|
16958
|
+
|
|
16959
|
+
if (_this.state.itemDraggedOutOfBounds > -1) {
|
|
16960
|
+
_this.setState({
|
|
16961
|
+
itemDraggedOutOfBounds: -1
|
|
16962
|
+
});
|
|
16963
|
+
}
|
|
16964
|
+
|
|
16965
|
+
return false;
|
|
16966
|
+
};
|
|
16967
|
+
|
|
16968
|
+
_this.onEnd = function (e) {
|
|
16969
|
+
e.cancelable && e.preventDefault();
|
|
16970
|
+
document.removeEventListener('mousemove', _this.schdOnMouseMove);
|
|
16971
|
+
document.removeEventListener('touchmove', _this.schdOnTouchMove);
|
|
16972
|
+
document.removeEventListener('mouseup', _this.schdOnEnd);
|
|
16973
|
+
document.removeEventListener('touchup', _this.schdOnEnd);
|
|
16974
|
+
document.removeEventListener('touchcancel', _this.schdOnEnd);
|
|
16975
|
+
|
|
16976
|
+
var removeItem = _this.props.removableByMove && _this.isDraggedItemOutOfBounds();
|
|
16977
|
+
|
|
16978
|
+
if (!removeItem && _this.props.transitionDuration > 0 && _this.afterIndex !== -2) {
|
|
16979
|
+
schd(function () {
|
|
16980
|
+
setItemTransition(_this.ghostRef.current, _this.props.transitionDuration, 'cubic-bezier(0.2, 0, 0.38, 0.9)');
|
|
16981
|
+
|
|
16982
|
+
if (_this.afterIndex < 1 && _this.state.itemDragged === 0) {
|
|
16983
|
+
transformItem(_this.ghostRef.current, 0, 0);
|
|
16984
|
+
} else {
|
|
16985
|
+
transformItem(_this.ghostRef.current, -(window.pageYOffset - _this.lastYOffset) + -(_this.listRef.current.scrollTop - _this.lastListYOffset) + (_this.state.itemDragged < _this.afterIndex ? _this.itemTranslateOffsets.slice(_this.state.itemDragged + 1, _this.afterIndex + 1).reduce(function (a, b) {
|
|
16986
|
+
return a + b;
|
|
16987
|
+
}, 0) : _this.itemTranslateOffsets.slice(_this.afterIndex < 0 ? 0 : _this.afterIndex, _this.state.itemDragged).reduce(function (a, b) {
|
|
16988
|
+
return a + b;
|
|
16989
|
+
}, 0) * -1), 0);
|
|
16990
|
+
}
|
|
16991
|
+
})();
|
|
16992
|
+
}
|
|
16993
|
+
|
|
16994
|
+
_this.dropTimeout = window.setTimeout(_this.finishDrop, removeItem || _this.afterIndex === -2 ? 0 : _this.props.transitionDuration);
|
|
16995
|
+
};
|
|
16996
|
+
|
|
16997
|
+
_this.finishDrop = function () {
|
|
16998
|
+
var removeItem = _this.props.removableByMove && _this.isDraggedItemOutOfBounds();
|
|
16999
|
+
|
|
17000
|
+
if (removeItem || _this.afterIndex > -2 && _this.state.itemDragged !== _this.afterIndex) {
|
|
17001
|
+
_this.props.onChange({
|
|
17002
|
+
oldIndex: _this.state.itemDragged,
|
|
17003
|
+
newIndex: removeItem ? -1 : Math.max(_this.afterIndex, 0),
|
|
17004
|
+
targetRect: _this.ghostRef.current.getBoundingClientRect()
|
|
17005
|
+
});
|
|
17006
|
+
}
|
|
17007
|
+
|
|
17008
|
+
_this.getChildren().forEach(function (item) {
|
|
17009
|
+
setItemTransition(item, 0);
|
|
17010
|
+
transformItem(item, null);
|
|
17011
|
+
item.style.touchAction = '';
|
|
17012
|
+
});
|
|
17013
|
+
|
|
17014
|
+
_this.setState({
|
|
17015
|
+
itemDragged: -1,
|
|
17016
|
+
scrollingSpeed: 0
|
|
17017
|
+
});
|
|
17018
|
+
|
|
17019
|
+
_this.afterIndex = -2;
|
|
17020
|
+
|
|
17021
|
+
if (_this.lastScroll > 0) {
|
|
17022
|
+
_this.listRef.current.scrollTop = _this.lastScroll;
|
|
17023
|
+
_this.lastScroll = 0;
|
|
17024
|
+
}
|
|
17025
|
+
};
|
|
17026
|
+
|
|
17027
|
+
_this.onKeyDown = function (e) {
|
|
17028
|
+
var selectedItem = _this.state.selectedItem;
|
|
17029
|
+
|
|
17030
|
+
var index = _this.getTargetIndex(e);
|
|
17031
|
+
|
|
17032
|
+
if (index === -1 || _this.props.values[index] && _this.props.values[index].props.disabled) {
|
|
17033
|
+
return;
|
|
17034
|
+
}
|
|
17035
|
+
|
|
17036
|
+
if (e.key === ' ') {
|
|
17037
|
+
e.preventDefault();
|
|
17038
|
+
|
|
17039
|
+
if (selectedItem === index) {
|
|
17040
|
+
if (selectedItem !== _this.needle) {
|
|
17041
|
+
_this.getChildren().forEach(function (item) {
|
|
17042
|
+
setItemTransition(item, 0);
|
|
17043
|
+
transformItem(item, null);
|
|
17044
|
+
});
|
|
17045
|
+
|
|
17046
|
+
_this.props.onChange({
|
|
17047
|
+
oldIndex: selectedItem,
|
|
17048
|
+
newIndex: _this.needle,
|
|
17049
|
+
targetRect: _this.getChildren()[_this.needle].getBoundingClientRect()
|
|
17050
|
+
});
|
|
17051
|
+
|
|
17052
|
+
_this.getChildren()[_this.needle].focus();
|
|
17053
|
+
}
|
|
17054
|
+
|
|
17055
|
+
_this.setState({
|
|
17056
|
+
selectedItem: -1
|
|
17057
|
+
});
|
|
17058
|
+
|
|
17059
|
+
_this.needle = -1;
|
|
17060
|
+
} else {
|
|
17061
|
+
_this.setState({
|
|
17062
|
+
selectedItem: index
|
|
17063
|
+
});
|
|
17064
|
+
|
|
17065
|
+
_this.needle = index;
|
|
17066
|
+
|
|
17067
|
+
_this.calculateOffsets();
|
|
17068
|
+
}
|
|
17069
|
+
}
|
|
17070
|
+
|
|
17071
|
+
if ((e.key === 'ArrowDown' || e.key === 'j') && selectedItem > -1 && _this.needle < _this.props.values.length - 1) {
|
|
17072
|
+
e.preventDefault();
|
|
17073
|
+
var offset = getTranslateOffset(_this.getChildren()[selectedItem]);
|
|
17074
|
+
_this.needle++;
|
|
17075
|
+
|
|
17076
|
+
_this.animateItems(_this.needle, selectedItem, offset, true);
|
|
17077
|
+
}
|
|
17078
|
+
|
|
17079
|
+
if ((e.key === 'ArrowUp' || e.key === 'k') && selectedItem > -1 && _this.needle > 0) {
|
|
17080
|
+
e.preventDefault();
|
|
17081
|
+
var offset = getTranslateOffset(_this.getChildren()[selectedItem]);
|
|
17082
|
+
_this.needle--;
|
|
17083
|
+
|
|
17084
|
+
_this.animateItems(_this.needle, selectedItem, offset, true);
|
|
17085
|
+
}
|
|
17086
|
+
|
|
17087
|
+
if (e.key === 'Escape' && selectedItem > -1) {
|
|
17088
|
+
_this.getChildren().forEach(function (item) {
|
|
17089
|
+
setItemTransition(item, 0);
|
|
17090
|
+
transformItem(item, null);
|
|
17091
|
+
});
|
|
17092
|
+
|
|
17093
|
+
_this.setState({
|
|
17094
|
+
selectedItem: -1
|
|
17095
|
+
});
|
|
17096
|
+
|
|
17097
|
+
_this.needle = -1;
|
|
17098
|
+
}
|
|
17099
|
+
|
|
17100
|
+
if ((e.key === 'Tab' || e.key === 'Enter') && selectedItem > -1) {
|
|
17101
|
+
e.preventDefault();
|
|
17102
|
+
}
|
|
17103
|
+
};
|
|
17104
|
+
|
|
17105
|
+
_this.schdOnMouseMove = schd(_this.onMouseMove);
|
|
17106
|
+
_this.schdOnTouchMove = schd(_this.onTouchMove);
|
|
17107
|
+
_this.schdOnEnd = schd(_this.onEnd);
|
|
17108
|
+
return _this;
|
|
17109
|
+
}
|
|
17110
|
+
|
|
17111
|
+
Draggable.prototype.componentDidMount = function () {
|
|
17112
|
+
this.calculateOffsets();
|
|
17113
|
+
document.addEventListener('touchstart', this.onMouseOrTouchStart, {
|
|
17114
|
+
passive: false,
|
|
17115
|
+
capture: false
|
|
17116
|
+
});
|
|
17117
|
+
document.addEventListener('mousedown', this.onMouseOrTouchStart);
|
|
17118
|
+
};
|
|
17119
|
+
|
|
17120
|
+
Draggable.prototype.componentDidUpdate = function (_prevProps, prevState) {
|
|
17121
|
+
if (prevState.scrollingSpeed !== this.state.scrollingSpeed && prevState.scrollingSpeed === 0) {
|
|
17122
|
+
this.doScrolling();
|
|
17123
|
+
}
|
|
17124
|
+
};
|
|
17125
|
+
|
|
17126
|
+
Draggable.prototype.componentWillUnmount = function () {
|
|
17127
|
+
document.removeEventListener('touchstart', this.onMouseOrTouchStart);
|
|
17128
|
+
document.removeEventListener('mousedown', this.onMouseOrTouchStart);
|
|
17129
|
+
|
|
17130
|
+
if (this.dropTimeout) {
|
|
17131
|
+
window.clearTimeout(this.dropTimeout);
|
|
17132
|
+
}
|
|
17133
|
+
|
|
17134
|
+
this.schdOnMouseMove.cancel();
|
|
17135
|
+
this.schdOnTouchMove.cancel();
|
|
17136
|
+
this.schdOnEnd.cancel();
|
|
17137
|
+
};
|
|
17138
|
+
|
|
17139
|
+
Draggable.prototype.render = function () {
|
|
17140
|
+
var _this = this;
|
|
17141
|
+
|
|
17142
|
+
var baseStyle = {
|
|
17143
|
+
userSelect: 'none',
|
|
17144
|
+
WebkitUserSelect: 'none',
|
|
17145
|
+
MozUserSelect: 'none',
|
|
17146
|
+
msUserSelect: 'none',
|
|
17147
|
+
boxSizing: 'border-box',
|
|
17148
|
+
position: 'relative'
|
|
17149
|
+
};
|
|
17150
|
+
|
|
17151
|
+
var ghostStyle = __assign(__assign({}, baseStyle), {
|
|
17152
|
+
top: this.state.targetY,
|
|
17153
|
+
left: this.state.targetX,
|
|
17154
|
+
width: this.state.targetWidth,
|
|
17155
|
+
height: this.state.targetHeight,
|
|
17156
|
+
backgroundColor: '#ffffff',
|
|
17157
|
+
listStyleType: 'none',
|
|
17158
|
+
margin: 0,
|
|
17159
|
+
position: 'fixed',
|
|
17160
|
+
boxShadow: '0 4px 16px 0 rgba(0, 0, 0, 0.16)'
|
|
17161
|
+
});
|
|
17162
|
+
|
|
17163
|
+
return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, this.props.renderList({
|
|
17164
|
+
children: this.props.values.map(function (value, index) {
|
|
17165
|
+
var isHidden = index === _this.state.itemDragged;
|
|
17166
|
+
var isSelected = index === _this.state.selectedItem;
|
|
17167
|
+
var isDisabled = _this.props.values[index] && _this.props.values[index].props.disabled;
|
|
17168
|
+
var props = {
|
|
17169
|
+
key: index,
|
|
17170
|
+
tabIndex: isDisabled ? -1 : 0,
|
|
17171
|
+
onKeyDown: _this.onKeyDown,
|
|
17172
|
+
style: __assign(__assign({}, baseStyle), {
|
|
17173
|
+
visibility: isHidden ? 'hidden' : undefined,
|
|
17174
|
+
zIndex: isSelected ? 5000 : 0
|
|
17175
|
+
})
|
|
17176
|
+
};
|
|
17177
|
+
return _this.props.renderItem({
|
|
17178
|
+
value: value,
|
|
17179
|
+
props: props,
|
|
17180
|
+
index: index,
|
|
17181
|
+
isDragged: false,
|
|
17182
|
+
isSelected: isSelected,
|
|
17183
|
+
isOutOfBounds: false
|
|
17184
|
+
});
|
|
17185
|
+
}),
|
|
17186
|
+
isDragged: this.state.itemDragged > -1,
|
|
17187
|
+
props: {
|
|
17188
|
+
ref: this.listRef
|
|
17189
|
+
}
|
|
17190
|
+
}), this.state.itemDragged > -1 && /*#__PURE__*/ReactDOM__namespace.createPortal(this.props.renderItem({
|
|
17191
|
+
value: this.props.values[this.state.itemDragged],
|
|
17192
|
+
props: {
|
|
17193
|
+
ref: this.ghostRef,
|
|
17194
|
+
style: ghostStyle,
|
|
17195
|
+
onWheel: this.onWheel
|
|
17196
|
+
},
|
|
17197
|
+
index: this.state.itemDragged,
|
|
17198
|
+
isDragged: true,
|
|
17199
|
+
isSelected: false,
|
|
17200
|
+
isOutOfBounds: this.state.itemDraggedOutOfBounds > -1
|
|
17201
|
+
}), document.body));
|
|
17202
|
+
};
|
|
17203
|
+
|
|
17204
|
+
Draggable.defaultProps = {
|
|
17205
|
+
transitionDuration: 240,
|
|
17206
|
+
lockVertically: false,
|
|
17207
|
+
removableByMove: false
|
|
17208
|
+
};
|
|
17209
|
+
return Draggable;
|
|
17210
|
+
}(React__namespace.Component);
|
|
17211
|
+
|
|
17212
|
+
var DraggableList = function DraggableList(props) {
|
|
17213
|
+
var children = props.children,
|
|
17214
|
+
className = props.className,
|
|
17215
|
+
Tag = props.tagName;
|
|
17216
|
+
var baseProps = extractBaseProps(props);
|
|
17217
|
+
var classes = classNames__default["default"]({
|
|
17218
|
+
Listbox: true
|
|
17219
|
+
}, className);
|
|
17220
|
+
var renderChildren = React__default["default"].Children.toArray(children).map(function (child) {
|
|
17221
|
+
var element = /*#__PURE__*/React__default["default"].cloneElement(child, {
|
|
17222
|
+
parentProps: __assign({}, props)
|
|
17223
|
+
});
|
|
17224
|
+
return element;
|
|
17225
|
+
});
|
|
17226
|
+
|
|
17227
|
+
var _a = React__default["default"].useState(renderChildren),
|
|
17228
|
+
childList = _a[0],
|
|
17229
|
+
setChildList = _a[1];
|
|
17230
|
+
|
|
17231
|
+
var onChangeHandler = function onChangeHandler(props) {
|
|
17232
|
+
var oldIndex = props.oldIndex,
|
|
17233
|
+
newIndex = props.newIndex;
|
|
17234
|
+
var updatedList = arrayMove(childList, oldIndex, newIndex);
|
|
17235
|
+
setChildList(updatedList);
|
|
17236
|
+
};
|
|
17237
|
+
|
|
17238
|
+
return /*#__PURE__*/React__default["default"].createElement(Draggable, {
|
|
17239
|
+
values: childList,
|
|
17240
|
+
onChange: onChangeHandler,
|
|
17241
|
+
renderItem: function renderItem(_a) {
|
|
17242
|
+
var value = _a.value,
|
|
17243
|
+
props = _a.props;
|
|
17244
|
+
return /*#__PURE__*/React__default["default"].createElement("div", __assign({}, props, {
|
|
17245
|
+
className: "Listbox-item--draggable"
|
|
17246
|
+
}), value);
|
|
17247
|
+
},
|
|
17248
|
+
renderList: function renderList(_a) {
|
|
17249
|
+
var children = _a.children,
|
|
17250
|
+
props = _a.props;
|
|
17251
|
+
return /*#__PURE__*/React__default["default"].createElement(Tag, __assign({
|
|
17252
|
+
"data-test": "DesignSystem-Listbox"
|
|
17253
|
+
}, baseProps, {
|
|
17254
|
+
className: classes
|
|
17255
|
+
}, props), children);
|
|
17256
|
+
}
|
|
17257
|
+
});
|
|
17258
|
+
};
|
|
17259
|
+
|
|
17260
|
+
var isDisabledElement = function isDisabledElement(element) {
|
|
17261
|
+
return element && element.getAttribute('data-disabled') === 'true';
|
|
17262
|
+
};
|
|
17263
|
+
|
|
17264
|
+
var getNextSibling = function getNextSibling(element) {
|
|
17265
|
+
var _a, _b;
|
|
17266
|
+
|
|
17267
|
+
return (_b = (_a = element === null || element === void 0 ? void 0 : element.parentNode) === null || _a === void 0 ? void 0 : _a.nextSibling) === null || _b === void 0 ? void 0 : _b.firstChild;
|
|
17268
|
+
};
|
|
17269
|
+
|
|
17270
|
+
var getPrevSibling = function getPrevSibling(element) {
|
|
17271
|
+
var _a, _b;
|
|
17272
|
+
|
|
17273
|
+
return (_b = (_a = element === null || element === void 0 ? void 0 : element.parentNode) === null || _a === void 0 ? void 0 : _a.previousSibling) === null || _b === void 0 ? void 0 : _b.firstChild;
|
|
17274
|
+
};
|
|
17275
|
+
|
|
17276
|
+
var focusOption = function focusOption(element, direction) {
|
|
17277
|
+
var iterateElement = element;
|
|
17278
|
+
|
|
17279
|
+
while (iterateElement) {
|
|
17280
|
+
if (!isDisabledElement(iterateElement)) {
|
|
17281
|
+
iterateElement.focus();
|
|
17282
|
+
break;
|
|
17283
|
+
}
|
|
17284
|
+
|
|
17285
|
+
if (direction === 'down') {
|
|
17286
|
+
iterateElement = getNextSibling(iterateElement);
|
|
17287
|
+
} else {
|
|
17288
|
+
iterateElement = getPrevSibling(iterateElement);
|
|
17289
|
+
}
|
|
17290
|
+
}
|
|
17291
|
+
};
|
|
17292
|
+
|
|
17293
|
+
var onKeyDown = function onKeyDown(event) {
|
|
17294
|
+
var sourceElement = event.target;
|
|
17295
|
+
var nextElement = getNextSibling(sourceElement);
|
|
17296
|
+
var prevElement = getPrevSibling(sourceElement);
|
|
17297
|
+
|
|
17298
|
+
switch (event.key) {
|
|
17299
|
+
case 'ArrowDown':
|
|
17300
|
+
event.preventDefault();
|
|
17301
|
+
focusOption(nextElement, 'down');
|
|
17302
|
+
break;
|
|
17303
|
+
|
|
17304
|
+
case 'ArrowUp':
|
|
17305
|
+
event.preventDefault();
|
|
17306
|
+
focusOption(prevElement, 'up');
|
|
17307
|
+
break;
|
|
17308
|
+
}
|
|
17309
|
+
};
|
|
17310
|
+
|
|
17311
|
+
var ListBody = function ListBody(props) {
|
|
17312
|
+
var _a;
|
|
17313
|
+
|
|
17314
|
+
var children = props.children,
|
|
17315
|
+
className = props.className,
|
|
17316
|
+
disabled = props.disabled,
|
|
17317
|
+
selected = props.selected,
|
|
17318
|
+
activated = props.activated;
|
|
17319
|
+
var contextProp = React__namespace.useContext(ListboxContext);
|
|
17320
|
+
var size = contextProp.size,
|
|
17321
|
+
type = contextProp.type,
|
|
17322
|
+
draggable = contextProp.draggable;
|
|
17323
|
+
var itemClass = classNames__default["default"]((_a = {
|
|
17324
|
+
'Listbox-item': true
|
|
17325
|
+
}, _a["Listbox-item--" + size] = size, _a["Listbox-item--" + type] = type, _a['Listbox-item--disabled'] = disabled, _a['Listbox-item--selected'] = selected && type === 'option', _a['Listbox-item--activated'] = activated && type === 'resource', _a), className);
|
|
17326
|
+
return /*#__PURE__*/React__namespace.createElement("div", {
|
|
17327
|
+
"data-disabled": disabled,
|
|
17328
|
+
"data-test": "DesignSystem-Listbox-ItemWrapper",
|
|
17329
|
+
tabIndex: draggable ? -1 : 0,
|
|
17330
|
+
className: itemClass,
|
|
17331
|
+
onKeyDown: onKeyDown,
|
|
17332
|
+
role: "tablist"
|
|
17333
|
+
}, draggable && /*#__PURE__*/React__namespace.createElement(Icon, {
|
|
17334
|
+
size: 16,
|
|
17335
|
+
appearance: "subtle",
|
|
17336
|
+
name: "drag_indicator",
|
|
17337
|
+
className: "Listbox-item--drag-icon",
|
|
17338
|
+
"data-test": "DesignSystem-Listbox-DragIcon"
|
|
17339
|
+
}), children);
|
|
17340
|
+
};
|
|
17341
|
+
|
|
17342
|
+
var getAnimationClass = function getAnimationClass(uniqueKey, expanded) {
|
|
17343
|
+
if (expanded) return "nestedList-open-" + uniqueKey + " 240ms cubic-bezier(0, 0, 0.38, 0.9)";else if (!expanded) return "nestedList-close-" + uniqueKey + " 160ms cubic-bezier(0.2, 0, 1, 0.9)";
|
|
17344
|
+
return '';
|
|
17345
|
+
};
|
|
17346
|
+
|
|
17347
|
+
var getHeight = function getHeight(listItemRef) {
|
|
17348
|
+
var _a;
|
|
17349
|
+
|
|
17350
|
+
var scrollHeight = (_a = listItemRef.current) === null || _a === void 0 ? void 0 : _a.scrollHeight;
|
|
17351
|
+
return scrollHeight;
|
|
17352
|
+
};
|
|
17353
|
+
|
|
17354
|
+
var menuItemAnimation = function menuItemAnimation(listItemRef, uniqueKey) {
|
|
17355
|
+
return "\n @keyframes nestedList-open-" + uniqueKey + " {\n from {\n height: 0px;\n }\n to {\n height: " + getHeight(listItemRef) + "px;\n }\n }\n\n @keyframes nestedList-close-" + uniqueKey + " {\n from {\n height: " + getHeight(listItemRef) + "px;\n }\n to {\n height: 0px;\n }\n }\n ";
|
|
17356
|
+
};
|
|
17357
|
+
|
|
17358
|
+
function usePrevious(value) {
|
|
17359
|
+
var ref = React__namespace.useRef();
|
|
17360
|
+
React__namespace.useEffect(function () {
|
|
17361
|
+
if (value != undefined) {
|
|
17362
|
+
ref.current = value;
|
|
17363
|
+
}
|
|
17364
|
+
}, [value]);
|
|
17365
|
+
return ref.current;
|
|
17366
|
+
}
|
|
17367
|
+
|
|
17368
|
+
var NestedList = function NestedList(props) {
|
|
17369
|
+
var nestedBody = props.nestedBody,
|
|
17370
|
+
expanded = props.expanded;
|
|
17371
|
+
var prevState = usePrevious(expanded);
|
|
17372
|
+
|
|
17373
|
+
var _a = React__namespace.useState(expanded),
|
|
17374
|
+
open = _a[0],
|
|
17375
|
+
setOpen = _a[1];
|
|
17376
|
+
|
|
17377
|
+
var _b = React__namespace.useState(''),
|
|
17378
|
+
keyframe = _b[0],
|
|
17379
|
+
setKeyframe = _b[1];
|
|
17380
|
+
|
|
17381
|
+
var listItemRef = React__namespace.useRef(null);
|
|
17382
|
+
var uniqueKey = Math.random().toString(36).substring(2, 6);
|
|
17383
|
+
|
|
17384
|
+
var _c = React__namespace.useState(getAnimationClass(uniqueKey, expanded)),
|
|
17385
|
+
animation = _c[0],
|
|
17386
|
+
setAnimation = _c[1];
|
|
17387
|
+
|
|
17388
|
+
React__namespace.useEffect(function () {
|
|
17389
|
+
if (prevState != undefined && prevState !== expanded) {
|
|
17390
|
+
setOpen(true);
|
|
17391
|
+
}
|
|
17392
|
+
|
|
17393
|
+
requestAnimationFrame(function () {
|
|
17394
|
+
var result = menuItemAnimation(listItemRef, uniqueKey);
|
|
17395
|
+
setKeyframe(result);
|
|
17396
|
+
});
|
|
17397
|
+
var animationClass = getAnimationClass(uniqueKey, expanded);
|
|
17398
|
+
setAnimation(animationClass);
|
|
17399
|
+
}, [expanded]);
|
|
17400
|
+
|
|
17401
|
+
var handleAnimationEnd = function handleAnimationEnd() {
|
|
17402
|
+
!expanded && setOpen(false);
|
|
17403
|
+
};
|
|
17404
|
+
|
|
17405
|
+
var styles = {
|
|
17406
|
+
animation: animation,
|
|
17407
|
+
overflow: 'hidden',
|
|
17408
|
+
animationFillMode: 'forwards'
|
|
17409
|
+
};
|
|
17410
|
+
return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement("style", null, keyframe), nestedBody && open && /*#__PURE__*/React__namespace.createElement("div", {
|
|
17411
|
+
style: styles,
|
|
17412
|
+
onAnimationEnd: handleAnimationEnd,
|
|
17413
|
+
"data-test": "DesignSystem-Listbox--Nested-Item",
|
|
17414
|
+
ref: listItemRef
|
|
17415
|
+
}, nestedBody));
|
|
17416
|
+
};
|
|
17417
|
+
|
|
17418
|
+
var ListboxItem = function ListboxItem(props) {
|
|
17419
|
+
var _a;
|
|
17420
|
+
|
|
17421
|
+
var nestedBody = props.nestedBody,
|
|
17422
|
+
expanded = props.expanded,
|
|
17423
|
+
id = props.id,
|
|
17424
|
+
onClick = props.onClick,
|
|
17425
|
+
value = props.value,
|
|
17426
|
+
Tag = props.tagName,
|
|
17427
|
+
rest = __rest(props, ["nestedBody", "expanded", "id", "onClick", "value", "tagName"]);
|
|
17428
|
+
|
|
17429
|
+
var contextProp = React__namespace.useContext(ListboxContext);
|
|
17430
|
+
var showDivider = contextProp.showDivider,
|
|
17431
|
+
draggable = contextProp.draggable;
|
|
17432
|
+
|
|
17433
|
+
var onClickHandler = function onClickHandler(e) {
|
|
17434
|
+
onClick && onClick(e, id, value);
|
|
17435
|
+
};
|
|
17436
|
+
|
|
17437
|
+
var tagClass = classNames__default["default"]((_a = {}, _a['Listbox-item-wrapper'] = !draggable, _a));
|
|
17438
|
+
return /*#__PURE__*/React__namespace.createElement(Tag, __assign({
|
|
17439
|
+
id: id,
|
|
17440
|
+
key: id
|
|
17441
|
+
}, rest, {
|
|
17442
|
+
"data-test": "DesignSystem-Listbox-Item",
|
|
17443
|
+
onClick: onClickHandler,
|
|
17444
|
+
"data-value": value,
|
|
17445
|
+
className: tagClass
|
|
17446
|
+
}), /*#__PURE__*/React__namespace.createElement(ListBody, __assign({}, props)), nestedBody && /*#__PURE__*/React__namespace.createElement(NestedList, {
|
|
17447
|
+
expanded: expanded,
|
|
17448
|
+
nestedBody: nestedBody
|
|
17449
|
+
}), showDivider && /*#__PURE__*/React__namespace.createElement(Divider, {
|
|
17450
|
+
className: "Listbox-divider"
|
|
17451
|
+
}));
|
|
17452
|
+
};
|
|
17453
|
+
ListboxItem.displayName = 'ListboxItem';
|
|
17454
|
+
ListboxItem.defaultProps = {
|
|
17455
|
+
tagName: 'li'
|
|
17456
|
+
};
|
|
17457
|
+
|
|
17458
|
+
var ListboxContext = /*#__PURE__*/React__namespace.createContext({
|
|
17459
|
+
size: 'standard',
|
|
17460
|
+
type: 'resource',
|
|
17461
|
+
draggable: false,
|
|
17462
|
+
showDivider: true
|
|
17463
|
+
});
|
|
17464
|
+
var Provider = ListboxContext.Provider;
|
|
17465
|
+
var Listbox = function Listbox(props) {
|
|
17466
|
+
var children = props.children,
|
|
17467
|
+
className = props.className,
|
|
17468
|
+
draggable = props.draggable,
|
|
17469
|
+
size = props.size,
|
|
17470
|
+
type = props.type,
|
|
17471
|
+
showDivider = props.showDivider,
|
|
17472
|
+
Tag = props.tagName,
|
|
17473
|
+
rest = __rest(props, ["children", "className", "draggable", "size", "type", "showDivider", "tagName"]);
|
|
17474
|
+
|
|
17475
|
+
var baseProps = extractBaseProps(props);
|
|
17476
|
+
var classes = classNames__default["default"]({
|
|
17477
|
+
Listbox: true
|
|
17478
|
+
}, className);
|
|
17479
|
+
var sharedProp = {
|
|
17480
|
+
size: size,
|
|
17481
|
+
type: type,
|
|
17482
|
+
draggable: draggable,
|
|
17483
|
+
showDivider: showDivider
|
|
17484
|
+
};
|
|
17485
|
+
return /*#__PURE__*/React__namespace.createElement(Provider, {
|
|
17486
|
+
value: sharedProp
|
|
17487
|
+
}, draggable ? /*#__PURE__*/React__namespace.createElement(DraggableList, __assign({}, props)) : /*#__PURE__*/React__namespace.createElement(Tag, __assign({
|
|
17488
|
+
"data-test": "DesignSystem-Listbox"
|
|
17489
|
+
}, baseProps, {
|
|
17490
|
+
className: classes
|
|
17491
|
+
}, rest), children));
|
|
17492
|
+
};
|
|
17493
|
+
Listbox.displayName = 'Listbox';
|
|
17494
|
+
Listbox.defaultProps = {
|
|
17495
|
+
tagName: 'ul',
|
|
17496
|
+
size: 'standard',
|
|
17497
|
+
type: 'resource',
|
|
17498
|
+
draggable: false,
|
|
17499
|
+
showDivider: true
|
|
17500
|
+
};
|
|
17501
|
+
Listbox.Item = ListboxItem;
|
|
17502
|
+
|
|
17503
|
+
var version = "2.25.0";
|
|
16583
17504
|
|
|
16584
17505
|
exports.ActionCard = ActionCard;
|
|
16585
17506
|
exports.Avatar = Avatar;
|
|
@@ -16631,6 +17552,7 @@
|
|
|
16631
17552
|
exports.Link = Link;
|
|
16632
17553
|
exports.LinkButton = LinkButton;
|
|
16633
17554
|
exports.List = List;
|
|
17555
|
+
exports.Listbox = Listbox;
|
|
16634
17556
|
exports.Message = Message;
|
|
16635
17557
|
exports.MetaList = MetaList;
|
|
16636
17558
|
exports.MetricInput = MetricInput;
|