@majoo-ui/react 1.58.8 → 1.58.10

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/index.esm.js CHANGED
@@ -3,7 +3,7 @@ import React__default, { useState, useEffect, createContext, useContext, useRef,
3
3
  import PropTypes from 'prop-types';
4
4
  import { createStitches, styled as styled$1 } from '@stitches/react';
5
5
  import { foundations } from '@majoo-ui/core';
6
- import { CloseOutline, UserFilled, CircleQuestionOutline, CircleInfoOutline, SearchOutline, CloseFilled, CaretDownOutline, ChevronUpOutline, ChevronDownOutline, CirclePlusOutline, SortingOutline, MinusOutline, PlusOutline, ChevronLeftOutline, ChevronRightOutline, TimeOutline, CalendarOutline, ChevronLgLeftOutline, ChevronLgRightOutline, ArrowLeftOutline, ArrowRightOutline, EllipsisHorizontalOutline, EyeOutline, UploadOutline, ImageOutline, ChevronUpDownOutline, CheckFilled, RemoveOutline, LocationOutline } from '@majoo-ui/icons';
6
+ import { CloseOutline, UserFilled, CircleQuestionOutline, CircleInfoOutline, SearchOutline, CloseFilled, CaretDownOutline, ChevronDownOutline, ChevronUpOutline, CirclePlusOutline, SortingOutline, MinusOutline, PlusOutline, ChevronLeftOutline, ChevronRightOutline, TimeOutline, CalendarOutline, ChevronLgLeftOutline, ChevronLgRightOutline, ArrowLeftOutline, ArrowRightOutline, EllipsisHorizontalOutline, EyeOutline, UploadOutline, ImageOutline, ChevronUpDownOutline, CheckFilled, RemoveOutline, LocationOutline } from '@majoo-ui/icons';
7
7
  import { Transition } from 'react-transition-group';
8
8
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
9
9
  import { Portal } from '@majoo-ui/helpers';
@@ -45,6 +45,7 @@ import { Editor } from 'react-draft-wysiwyg';
45
45
  import { ContextMenuTrigger as ContextMenuTrigger$1, ContextMenu as ContextMenu$1, MenuItem } from 'react-contextmenu';
46
46
  import ReactSkeleton, { SkeletonTheme } from 'react-loading-skeleton';
47
47
  import 'react-loading-skeleton/dist/skeleton.css';
48
+ import { useVirtual } from 'react-virtual';
48
49
  import ScrollSpy from 'react-ui-scrollspy';
49
50
  import ReactCrop, { centerCrop, makeAspectCrop } from 'react-image-crop';
50
51
  import imageCompressionComponent from 'browser-image-compression';
@@ -12872,6 +12873,140 @@ const CheckOutline = props => /*#__PURE__*/React.createElement("svg", _extends({
12872
12873
  }
12873
12874
  }));
12874
12875
 
12876
+ const StyledAccordion = styled(AccordionPrimitive.Root, {});
12877
+ const Accordion = /*#__PURE__*/React.forwardRef((_a, forwardedRef) => {
12878
+ var {
12879
+ children
12880
+ } = _a,
12881
+ props = __rest(_a, ["children"]);
12882
+ return jsx(StyledAccordion, Object.assign({
12883
+ ref: forwardedRef
12884
+ }, props, props.type === 'single' ? {
12885
+ collapsible: true
12886
+ } : {}, {
12887
+ children: children
12888
+ }), void 0);
12889
+ });
12890
+ const StyledItem$1 = styled(AccordionPrimitive.Item, {
12891
+ borderTop: '1px solid $colors$slate6',
12892
+ '&:last-of-type': {
12893
+ borderBottom: '1px solid $colors$slate6'
12894
+ }
12895
+ });
12896
+ const StyledHeader = styled(AccordionPrimitive.Header, {
12897
+ all: 'unset'
12898
+ });
12899
+ const StyledTrigger$1 = styled(AccordionPrimitive.Trigger, {
12900
+ all: 'unset',
12901
+ boxSizing: 'border-box',
12902
+ userSelect: 'none',
12903
+ '&::before': {
12904
+ boxSizing: 'border-box'
12905
+ },
12906
+ '&::after': {
12907
+ boxSizing: 'border-box'
12908
+ },
12909
+ cursor: 'pointer',
12910
+ display: 'flex',
12911
+ alignItems: 'center',
12912
+ color: '$hiContrast',
12913
+ width: '100%',
12914
+ '@hover': {
12915
+ '&:hover': {
12916
+ backgroundColor: '$slate2'
12917
+ }
12918
+ },
12919
+ '&:focus': {
12920
+ outline: 'none',
12921
+ boxShadow: 'inset 0 0 0 1px $colors$slate8, 0 0 0 1px $colors$slate8'
12922
+ },
12923
+ '& svg.icon-cdf': {
12924
+ color: '$white',
12925
+ size: '24px',
12926
+ transition: 'transform 175ms cubic-bezier(0.65, 0, 0.35, 1)'
12927
+ },
12928
+ '& svg.right': {
12929
+ marginRight: '$spacing-05'
12930
+ },
12931
+ '&[data-state="open"]': {
12932
+ '& svg.icon-cdf': {
12933
+ transform: 'rotate(180deg)'
12934
+ }
12935
+ },
12936
+ variants: {
12937
+ arrowPosition: {
12938
+ right: {
12939
+ justifyContent: 'space-between'
12940
+ },
12941
+ left: {
12942
+ justifyContent: 'start'
12943
+ }
12944
+ }
12945
+ }
12946
+ });
12947
+ const AccordionTrigger = /*#__PURE__*/React.forwardRef((_a, forwardedRef) => {
12948
+ var {
12949
+ children,
12950
+ arrowPosition = 'right',
12951
+ hasContent = true,
12952
+ arrowColor = 'white'
12953
+ } = _a,
12954
+ props = __rest(_a, ["children", "arrowPosition", "hasContent", "arrowColor"]);
12955
+ return jsx(StyledHeader, {
12956
+ children: jsx(StyledTrigger$1, Object.assign({}, props, {
12957
+ arrowPosition: arrowPosition,
12958
+ ref: forwardedRef
12959
+ }, {
12960
+ children: arrowPosition === 'right' ? jsxs(Fragment, {
12961
+ children: [children, hasContent && jsx(ChevronDownOutline, {
12962
+ className: "icon-cdf right",
12963
+ color: arrowColor
12964
+ }, void 0)]
12965
+ }, void 0) : jsxs(Fragment, {
12966
+ children: [hasContent && jsx(ChevronDownOutline, {
12967
+ className: "icon-cdf left",
12968
+ color: arrowColor
12969
+ }, void 0), children]
12970
+ }, void 0)
12971
+ }), void 0)
12972
+ }, void 0);
12973
+ });
12974
+ const AccordionItem = StyledItem$1;
12975
+ const AccordionContent = AccordionPrimitive.Content;
12976
+
12977
+ const OptionGroup = styled(Flex$1, {
12978
+ position: 'relative'
12979
+ });
12980
+ const OptionItem = styled(Flex$1, {
12981
+ fontWeight: 600
12982
+ });
12983
+ const OptionChildren = styled(Box, {});
12984
+ const IconWrapper$1 = styled(Box, {
12985
+ position: 'absolute',
12986
+ top: 10,
12987
+ right: 0,
12988
+ cursor: 'pointer'
12989
+ });
12990
+ function OptionGroupItem({
12991
+ item,
12992
+ children
12993
+ }) {
12994
+ const [isShow, setIsShow] = useState(false);
12995
+ return jsxs(OptionGroup, Object.assign({
12996
+ direction: "column"
12997
+ }, {
12998
+ children: [jsxs(OptionItem, {
12999
+ children: [item, jsx(IconWrapper$1, Object.assign({
13000
+ onClick: () => setIsShow(!isShow)
13001
+ }, {
13002
+ children: isShow ? jsx(ChevronUpOutline, {}, void 0) : jsx(ChevronDownOutline, {}, void 0)
13003
+ }), void 0)]
13004
+ }, void 0), isShow && jsx(OptionChildren, {
13005
+ children: children
13006
+ }, void 0)]
13007
+ }), void 0);
13008
+ }
13009
+
12875
13010
  const _excluded$c = ["placeholder", "option", "value", "defaultValue", "size", "disabled", "onChange", "search", "readOnly", "placement", "disabledOptions", "textEmptyItem", "onRemoveItem", "isInvalid", "sortBy", "showSelectAll", "showTagSelectAll", "selectAllLabel", "showSelectedTag", "unremovableTags", "helperText", "css", "showCounter", "labelCounter", "collapsible", "toggleInput", "fetchData", "onSearch", "isLoading", "maxSelectedItem"];
12876
13011
  var _jsxFileName$w = "/Users/ryanakbar20/Documents/project/majoo/majoo-ui/packages/react/src/components/form/components/InputSelectCheck/InputSelectCheck.js";
12877
13012
  const Wrapper$1 = styled('div', {
@@ -13104,7 +13239,7 @@ const IndeterminateFilled$1 = styled('div', {
13104
13239
  alignItems: 'center'
13105
13240
  });
13106
13241
  const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13107
- var _selectedItems$filter, _selectedItems$filter2, _selectedItems$filter3, _selectedItems$filter4;
13242
+ var _initItem$reduce, _selectedItems$filter, _selectedItems$filter2, _selectedItems$filter3, _selectedItems$filter4;
13108
13243
  let {
13109
13244
  placeholder,
13110
13245
  option,
@@ -13223,7 +13358,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13223
13358
  removeSelectedItem,
13224
13359
  selectedItems
13225
13360
  } = useMultipleSelection({
13226
- selectedItems: selectedValue.length > 0 ? initItem.filter(item => selectedValue.includes(item.id)) : []
13361
+ selectedItems: selectedValue.length > 0 ? initItem === null || initItem === void 0 ? void 0 : (_initItem$reduce = initItem.reduce((acc, item) => [...acc, item, ...(item.children ? item.children : [])], [])) === null || _initItem$reduce === void 0 ? void 0 : _initItem$reduce.filter(item => selectedValue.includes(item.id)) : []
13227
13362
  });
13228
13363
  const generateOptions = data => {
13229
13364
  return data.map(option => {
@@ -13301,7 +13436,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13301
13436
  isOpen
13302
13437
  } = useCombobox({
13303
13438
  inputValue,
13304
- items: items,
13439
+ items: items.reduce((acc, item) => [...acc, item, ...(item.children ? item.children : [])], []),
13305
13440
  selectedItem: selectedValue,
13306
13441
  itemToString: item => item ? item.name : '',
13307
13442
  onStateChange: ({
@@ -13343,6 +13478,52 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13343
13478
  setInputSelectValue(itemIds);
13344
13479
  onChange === null || onChange === void 0 ? void 0 : onChange(itemIds.slice(1));
13345
13480
  } else {
13481
+ var _selectedItem$childre;
13482
+ //start check if item have children (option group)
13483
+ if (selectedItem !== null && selectedItem !== void 0 && (_selectedItem$childre = selectedItem.children) !== null && _selectedItem$childre !== void 0 && _selectedItem$childre.length) {
13484
+ var _selectedItem$childre2;
13485
+ const itemIdsSelect = [];
13486
+ const itemIdsUnSelect = [];
13487
+ selectedItem === null || selectedItem === void 0 ? void 0 : (_selectedItem$childre2 = selectedItem.children) === null || _selectedItem$childre2 === void 0 ? void 0 : _selectedItem$childre2.forEach(item => {
13488
+ if (selectedValue !== null && selectedValue !== void 0 && selectedValue.includes(item.id)) {
13489
+ removeSelectedItem(item);
13490
+ itemIdsUnSelect.push(item.id);
13491
+ } else {
13492
+ addSelectedItem(item);
13493
+ itemIdsSelect.push(item.id);
13494
+ }
13495
+ });
13496
+
13497
+ //select all child in one of the option groups
13498
+ if (itemIdsSelect.length) {
13499
+ setSelectedValue([...selectedValue, ...itemIdsSelect]);
13500
+ setInputSelectValue([...selectedValue, ...itemIdsSelect]);
13501
+ const _filteredSelectedValues = selectedValue.filter(val => val !== '!all');
13502
+ onChange === null || onChange === void 0 ? void 0 : onChange([..._filteredSelectedValues, ...itemIdsSelect]);
13503
+ }
13504
+
13505
+ //unselect all child in one of the option groups
13506
+ if (itemIdsUnSelect.length) {
13507
+ const newSelectedValue = selectedValue.filter(selId => {
13508
+ var _itemIdsUnSelect$filt;
13509
+ return ((_itemIdsUnSelect$filt = itemIdsUnSelect.filter(unselId => unselId === selId && unselId)) === null || _itemIdsUnSelect$filt === void 0 ? void 0 : _itemIdsUnSelect$filt[0]) !== selId && selId;
13510
+ });
13511
+ setSelectedValue(newSelectedValue);
13512
+ setInputSelectValue(newSelectedValue);
13513
+ const _filteredSelectedValues2 = newSelectedValue.filter(val => val !== '!all');
13514
+ onChange === null || onChange === void 0 ? void 0 : onChange(_filteredSelectedValues2);
13515
+ }
13516
+ return;
13517
+ }
13518
+ //end check if item have children (option group)
13519
+
13520
+ //start check the child from one of the option groups
13521
+ if (selectedValue.includes(selectedItem.id)) {
13522
+ removeItem(selectedItem);
13523
+ return;
13524
+ }
13525
+ //end check the child from one of the option groups
13526
+
13346
13527
  addSelectedItem(selectedItem);
13347
13528
  setSelectedValue([...selectedValue, selectedItem.id]);
13348
13529
  setInputSelectValue([...selectedValue, selectedItem.id]);
@@ -13439,13 +13620,173 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13439
13620
  }
13440
13621
  };
13441
13622
  const isShowTagSelectAll = showTagSelectAll && (selectedItems === null || selectedItems === void 0 ? void 0 : selectedItems.length) > (option === null || option === void 0 ? void 0 : option.length);
13623
+ const renderOptionItem = (item, index, asChild) => {
13624
+ var _item$render;
13625
+ return /*#__PURE__*/React__default.createElement(ItemWrapper$1, _extends({
13626
+ key: item.id
13627
+ }, getItemProps({
13628
+ item,
13629
+ index: index,
13630
+ disabled: item.isDisabled
13631
+ }), {
13632
+ css: {
13633
+ backgroundColor: highlightedIndex === index ? '$bgGray' : 'white',
13634
+ cursor: item.isDisabled ? 'not-allowed' : 'pointer',
13635
+ color: item.isDisabled ? '$textDisable' : 'textPrimary',
13636
+ padding: asChild ? '0px $spacing-05' : 0
13637
+ },
13638
+ __self: undefined,
13639
+ __source: {
13640
+ fileName: _jsxFileName$w,
13641
+ lineNumber: 678,
13642
+ columnNumber: 9
13643
+ }
13644
+ }), /*#__PURE__*/React__default.createElement(IconWrapper, {
13645
+ css: {
13646
+ width: '16px',
13647
+ height: '16px',
13648
+ border: '1px solid $bgBorder',
13649
+ cursor: item.isDisabled ? 'not-allowed' : 'pointer'
13650
+ },
13651
+ __self: undefined,
13652
+ __source: {
13653
+ fileName: _jsxFileName$w,
13654
+ lineNumber: 692,
13655
+ columnNumber: 11
13656
+ }
13657
+ }, !(item !== null && item !== void 0 && item.hideCheck) && (item.isDisabled ? /*#__PURE__*/React__default.createElement(CheckOutline, {
13658
+ color: colors$8.iconDisable,
13659
+ __self: undefined,
13660
+ __source: {
13661
+ fileName: _jsxFileName$w,
13662
+ lineNumber: 702,
13663
+ columnNumber: 17
13664
+ }
13665
+ }) : selectedValue.includes(item.id) && (item.isDisabled === false || item.isDisabled === undefined) && /*#__PURE__*/React__default.createElement(CheckOutline, {
13666
+ color: colors$8.iconGreen,
13667
+ __self: undefined,
13668
+ __source: {
13669
+ fileName: _jsxFileName$w,
13670
+ lineNumber: 706,
13671
+ columnNumber: 19
13672
+ }
13673
+ })), isShowSelectAll && (item === null || item === void 0 ? void 0 : item.id) === '!all' && selectedValue !== null && selectedValue !== void 0 && selectedValue.length && (selectedValue === null || selectedValue === void 0 ? void 0 : selectedValue.length) < (items === null || items === void 0 ? void 0 : items.length) ? /*#__PURE__*/React__default.createElement(IndeterminateFilled$1, {
13674
+ __self: undefined,
13675
+ __source: {
13676
+ fileName: _jsxFileName$w,
13677
+ lineNumber: 713,
13678
+ columnNumber: 15
13679
+ }
13680
+ }, "-") : /*#__PURE__*/React__default.createElement("div", {
13681
+ __self: undefined,
13682
+ __source: {
13683
+ fileName: _jsxFileName$w,
13684
+ lineNumber: 715,
13685
+ columnNumber: 15
13686
+ }
13687
+ })), /*#__PURE__*/React__default.createElement(Item$3, {
13688
+ css: {
13689
+ backgroundColor: 'unset',
13690
+ width: '100%'
13691
+ },
13692
+ __self: undefined,
13693
+ __source: {
13694
+ fileName: _jsxFileName$w,
13695
+ lineNumber: 718,
13696
+ columnNumber: 11
13697
+ }
13698
+ }, item.render ? (_item$render = item.render) === null || _item$render === void 0 ? void 0 : _item$render.call(item, item.name) : item.name));
13699
+ };
13700
+ let optionGroupIndex = showSelectAll ? 1 : 0;
13701
+ const renderOptionGroupItem = (item, index) => {
13702
+ var _item$children2, _item$children3, _item$children3$filte, _item$render2, _item$children4;
13703
+ if (index > showSelectAll ? 1 : 0) {
13704
+ var _item$children;
13705
+ optionGroupIndex += (item === null || item === void 0 ? void 0 : (_item$children = item.children) === null || _item$children === void 0 ? void 0 : _item$children.length) + 1;
13706
+ }
13707
+ const filterSelectedChild = item === null || item === void 0 ? void 0 : (_item$children2 = item.children) === null || _item$children2 === void 0 ? void 0 : _item$children2.filter(e => selectedValue.includes(e.id) && !e.isDisabled);
13708
+ return /*#__PURE__*/React__default.createElement(OptionGroupItem, {
13709
+ item: /*#__PURE__*/React__default.createElement(ItemWrapper$1, _extends({
13710
+ key: item.id
13711
+ }, getItemProps({
13712
+ item,
13713
+ index: optionGroupIndex,
13714
+ disabled: item.isDisabled
13715
+ }), {
13716
+ css: {
13717
+ backgroundColor: highlightedIndex === optionGroupIndex ? '$bgGray' : 'white',
13718
+ cursor: item.isDisabled ? 'not-allowed' : 'pointer',
13719
+ color: item.isDisabled ? '$textDisable' : 'textPrimary'
13720
+ },
13721
+ __self: undefined,
13722
+ __source: {
13723
+ fileName: _jsxFileName$w,
13724
+ lineNumber: 735,
13725
+ columnNumber: 13
13726
+ }
13727
+ }), /*#__PURE__*/React__default.createElement(IconWrapper, {
13728
+ css: {
13729
+ width: '16px',
13730
+ height: '16px',
13731
+ border: '1px solid $bgBorder',
13732
+ cursor: item.isDisabled ? 'not-allowed' : 'pointer'
13733
+ },
13734
+ __self: undefined,
13735
+ __source: {
13736
+ fileName: _jsxFileName$w,
13737
+ lineNumber: 748,
13738
+ columnNumber: 15
13739
+ }
13740
+ }, !(item !== null && item !== void 0 && item.hideCheck) && item.isDisabled ? /*#__PURE__*/React__default.createElement(CheckOutline, {
13741
+ color: colors$8.iconDisable,
13742
+ __self: undefined,
13743
+ __source: {
13744
+ fileName: _jsxFileName$w,
13745
+ lineNumber: 757,
13746
+ columnNumber: 19
13747
+ }
13748
+ }) : (filterSelectedChild === null || filterSelectedChild === void 0 ? void 0 : filterSelectedChild.length) === (item === null || item === void 0 ? void 0 : (_item$children3 = item.children) === null || _item$children3 === void 0 ? void 0 : (_item$children3$filte = _item$children3.filter(e => !e.isDisabled)) === null || _item$children3$filte === void 0 ? void 0 : _item$children3$filte.length) ? /*#__PURE__*/React__default.createElement(CheckOutline, {
13749
+ color: colors$8.iconGreen,
13750
+ __self: undefined,
13751
+ __source: {
13752
+ fileName: _jsxFileName$w,
13753
+ lineNumber: 759,
13754
+ columnNumber: 19
13755
+ }
13756
+ }) : (filterSelectedChild === null || filterSelectedChild === void 0 ? void 0 : filterSelectedChild.length) > 0 ? /*#__PURE__*/React__default.createElement(IndeterminateFilled$1, {
13757
+ __self: undefined,
13758
+ __source: {
13759
+ fileName: _jsxFileName$w,
13760
+ lineNumber: 761,
13761
+ columnNumber: 19
13762
+ }
13763
+ }, "-") : null), /*#__PURE__*/React__default.createElement(Item$3, {
13764
+ css: {
13765
+ backgroundColor: 'unset',
13766
+ width: '100%'
13767
+ },
13768
+ __self: undefined,
13769
+ __source: {
13770
+ fileName: _jsxFileName$w,
13771
+ lineNumber: 764,
13772
+ columnNumber: 15
13773
+ }
13774
+ }, item.render ? (_item$render2 = item.render) === null || _item$render2 === void 0 ? void 0 : _item$render2.call(item, item.name) : item.name)),
13775
+ __self: undefined,
13776
+ __source: {
13777
+ fileName: _jsxFileName$w,
13778
+ lineNumber: 733,
13779
+ columnNumber: 9
13780
+ }
13781
+ }, item === null || item === void 0 ? void 0 : (_item$children4 = item.children) === null || _item$children4 === void 0 ? void 0 : _item$children4.map((optItem, optIndex) => renderOptionItem(optItem, optionGroupIndex + optIndex + 1, true)));
13782
+ };
13442
13783
  return /*#__PURE__*/React__default.createElement(Wrapper$1, _extends({
13443
13784
  css: css
13444
13785
  }, props, {
13445
13786
  __self: undefined,
13446
13787
  __source: {
13447
13788
  fileName: _jsxFileName$w,
13448
- lineNumber: 626,
13789
+ lineNumber: 776,
13449
13790
  columnNumber: 7
13450
13791
  }
13451
13792
  }), /*#__PURE__*/React__default.createElement(Select, {
@@ -13455,7 +13796,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13455
13796
  __self: undefined,
13456
13797
  __source: {
13457
13798
  fileName: _jsxFileName$w,
13458
- lineNumber: 627,
13799
+ lineNumber: 777,
13459
13800
  columnNumber: 9
13460
13801
  }
13461
13802
  }, /*#__PURE__*/React__default.createElement(InputWrapper$1, _extends({}, getComboboxProps(getDropdownProps({
@@ -13470,7 +13811,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13470
13811
  __self: undefined,
13471
13812
  __source: {
13472
13813
  fileName: _jsxFileName$w,
13473
- lineNumber: 628,
13814
+ lineNumber: 778,
13474
13815
  columnNumber: 11
13475
13816
  }
13476
13817
  }), /*#__PURE__*/React__default.createElement(Input$6, _extends({}, getInputProps({
@@ -13488,7 +13829,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13488
13829
  __self: undefined,
13489
13830
  __source: {
13490
13831
  fileName: _jsxFileName$w,
13491
- lineNumber: 638,
13832
+ lineNumber: 788,
13492
13833
  columnNumber: 13
13493
13834
  }
13494
13835
  })), /*#__PURE__*/React__default.createElement(Button$2, _extends({}, getToggleButtonProps({
@@ -13501,7 +13842,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13501
13842
  __self: undefined,
13502
13843
  __source: {
13503
13844
  fileName: _jsxFileName$w,
13504
- lineNumber: 645,
13845
+ lineNumber: 795,
13505
13846
  columnNumber: 13
13506
13847
  }
13507
13848
  }), placeholder != null ? placeholder : t('placeholder', 'Pilih Item'))), /*#__PURE__*/React__default.createElement(IconWrapper, _extends({}, getToggleButtonProps({
@@ -13512,7 +13853,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13512
13853
  __self: undefined,
13513
13854
  __source: {
13514
13855
  fileName: _jsxFileName$w,
13515
- lineNumber: 655,
13856
+ lineNumber: 805,
13516
13857
  columnNumber: 11
13517
13858
  }
13518
13859
  }), /*#__PURE__*/React__default.createElement(IconCaretDown, {
@@ -13520,7 +13861,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13520
13861
  __self: undefined,
13521
13862
  __source: {
13522
13863
  fileName: _jsxFileName$w,
13523
- lineNumber: 660,
13864
+ lineNumber: 810,
13524
13865
  columnNumber: 13
13525
13866
  }
13526
13867
  }))), helperText && /*#__PURE__*/React__default.createElement(Paragraph, {
@@ -13533,7 +13874,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13533
13874
  __self: undefined,
13534
13875
  __source: {
13535
13876
  fileName: _jsxFileName$w,
13536
- lineNumber: 664,
13877
+ lineNumber: 814,
13537
13878
  columnNumber: 11
13538
13879
  }
13539
13880
  }, helperText), showSelectedTag && !showCounter && selectedItems.length !== 0 && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(TagWrapper$2, {
@@ -13541,7 +13882,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13541
13882
  __self: undefined,
13542
13883
  __source: {
13543
13884
  fileName: _jsxFileName$w,
13544
- lineNumber: 670,
13885
+ lineNumber: 820,
13545
13886
  columnNumber: 13
13546
13887
  }
13547
13888
  }, isShowTagSelectAll ? /*#__PURE__*/React__default.createElement(Tag, _extends({
@@ -13561,7 +13902,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13561
13902
  __self: undefined,
13562
13903
  __source: {
13563
13904
  fileName: _jsxFileName$w,
13564
- lineNumber: 672,
13905
+ lineNumber: 822,
13565
13906
  columnNumber: 17
13566
13907
  }
13567
13908
  }), selectAllLabel != null ? selectAllLabel : t('selectAllLabelText', 'Pilih Semua')) : selectedItems === null || selectedItems === void 0 ? void 0 : (_selectedItems$filter = selectedItems.filter(item => (item === null || item === void 0 ? void 0 : item.id) !== '!all')) === null || _selectedItems$filter === void 0 ? void 0 : (_selectedItems$filter2 = _selectedItems$filter.filter((_, idx) => {
@@ -13591,7 +13932,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13591
13932
  __self: undefined,
13592
13933
  __source: {
13593
13934
  fileName: _jsxFileName$w,
13594
- lineNumber: 700,
13935
+ lineNumber: 850,
13595
13936
  columnNumber: 21
13596
13937
  }
13597
13938
  }), selectedItem.name))), collapsible && !isShowTagSelectAll && (selectedItems === null || selectedItems === void 0 ? void 0 : selectedItems.length) > 5 && /*#__PURE__*/React__default.createElement(Flex$1, {
@@ -13600,7 +13941,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13600
13941
  __self: undefined,
13601
13942
  __source: {
13602
13943
  fileName: _jsxFileName$w,
13603
- lineNumber: 722,
13944
+ lineNumber: 872,
13604
13945
  columnNumber: 15
13605
13946
  }
13606
13947
  }, /*#__PURE__*/React__default.createElement(Flex$1, {
@@ -13610,14 +13951,14 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13610
13951
  __self: undefined,
13611
13952
  __source: {
13612
13953
  fileName: _jsxFileName$w,
13613
- lineNumber: 723,
13954
+ lineNumber: 873,
13614
13955
  columnNumber: 17
13615
13956
  }
13616
13957
  }, /*#__PURE__*/React__default.createElement(Separator$2, {
13617
13958
  __self: undefined,
13618
13959
  __source: {
13619
13960
  fileName: _jsxFileName$w,
13620
- lineNumber: 724,
13961
+ lineNumber: 874,
13621
13962
  columnNumber: 19
13622
13963
  }
13623
13964
  }), /*#__PURE__*/React__default.createElement(Flex$1, {
@@ -13631,7 +13972,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13631
13972
  __self: undefined,
13632
13973
  __source: {
13633
13974
  fileName: _jsxFileName$w,
13634
- lineNumber: 725,
13975
+ lineNumber: 875,
13635
13976
  columnNumber: 19
13636
13977
  }
13637
13978
  }, showAllTags ? /*#__PURE__*/React__default.createElement(ChevronUpOutline, {
@@ -13639,7 +13980,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13639
13980
  __self: undefined,
13640
13981
  __source: {
13641
13982
  fileName: _jsxFileName$w,
13642
- lineNumber: 731,
13983
+ lineNumber: 881,
13643
13984
  columnNumber: 23
13644
13985
  }
13645
13986
  }) : /*#__PURE__*/React__default.createElement(ChevronDownOutline, {
@@ -13647,7 +13988,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13647
13988
  __self: undefined,
13648
13989
  __source: {
13649
13990
  fileName: _jsxFileName$w,
13650
- lineNumber: 733,
13991
+ lineNumber: 883,
13651
13992
  columnNumber: 23
13652
13993
  }
13653
13994
  }), /*#__PURE__*/React__default.createElement(Paragraph, {
@@ -13659,14 +14000,14 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13659
14000
  __self: undefined,
13660
14001
  __source: {
13661
14002
  fileName: _jsxFileName$w,
13662
- lineNumber: 735,
14003
+ lineNumber: 885,
13663
14004
  columnNumber: 21
13664
14005
  }
13665
14006
  }, showAllTags ? t('showSomeText', 'Tampilkan Sebagian') : t('showAllText', 'Tampilkan Semua'))), /*#__PURE__*/React__default.createElement(Separator$2, {
13666
14007
  __self: undefined,
13667
14008
  __source: {
13668
14009
  fileName: _jsxFileName$w,
13669
- lineNumber: 739,
14010
+ lineNumber: 889,
13670
14011
  columnNumber: 19
13671
14012
  }
13672
14013
  })), /*#__PURE__*/React__default.createElement(Paragraph, {
@@ -13677,7 +14018,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13677
14018
  __self: undefined,
13678
14019
  __source: {
13679
14020
  fileName: _jsxFileName$w,
13680
- lineNumber: 741,
14021
+ lineNumber: 891,
13681
14022
  columnNumber: 17
13682
14023
  }
13683
14024
  }, `${selectedItems === null || selectedItems === void 0 ? void 0 : (_selectedItems$filter3 = selectedItems.filter(item => (item === null || item === void 0 ? void 0 : item.id) !== '!all')) === null || _selectedItems$filter3 === void 0 ? void 0 : _selectedItems$filter3.length} ${labelCounter || t('labelCounterText', 'Item terpilih')}`))), showCounter && !isShowTagSelectAll && Boolean(selectedItems === null || selectedItems === void 0 ? void 0 : selectedItems.length) && /*#__PURE__*/React__default.createElement(Paragraph, {
@@ -13689,7 +14030,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13689
14030
  __self: undefined,
13690
14031
  __source: {
13691
14032
  fileName: _jsxFileName$w,
13692
- lineNumber: 751,
14033
+ lineNumber: 901,
13693
14034
  columnNumber: 11
13694
14035
  }
13695
14036
  }, `${selectedItems === null || selectedItems === void 0 ? void 0 : (_selectedItems$filter4 = selectedItems.filter(item => (item === null || item === void 0 ? void 0 : item.id) !== '!all')) === null || _selectedItems$filter4 === void 0 ? void 0 : _selectedItems$filter4.length} ${labelCounter || t('labelCounterText', 'Item terpilih')}`), /*#__PURE__*/React__default.createElement(OptionWrapper$1, {
@@ -13702,7 +14043,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13702
14043
  __self: undefined,
13703
14044
  __source: {
13704
14045
  fileName: _jsxFileName$w,
13705
- lineNumber: 758,
14046
+ lineNumber: 908,
13706
14047
  columnNumber: 9
13707
14048
  }
13708
14049
  }, isLoading && /*#__PURE__*/React__default.createElement(Flex$1, {
@@ -13724,7 +14065,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13724
14065
  __self: undefined,
13725
14066
  __source: {
13726
14067
  fileName: _jsxFileName$w,
13727
- lineNumber: 768,
14068
+ lineNumber: 918,
13728
14069
  columnNumber: 13
13729
14070
  }
13730
14071
  }, /*#__PURE__*/React__default.createElement(Text$1, {
@@ -13732,7 +14073,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13732
14073
  __self: undefined,
13733
14074
  __source: {
13734
14075
  fileName: _jsxFileName$w,
13735
- lineNumber: 785,
14076
+ lineNumber: 935,
13736
14077
  columnNumber: 15
13737
14078
  }
13738
14079
  }, "Loading....")), items.length > 0 || isLoading ? /*#__PURE__*/React__default.createElement(Option, _extends({}, getMenuProps({
@@ -13743,7 +14084,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13743
14084
  __self: undefined,
13744
14085
  __source: {
13745
14086
  fileName: _jsxFileName$w,
13746
- lineNumber: 791,
14087
+ lineNumber: 941,
13747
14088
  columnNumber: 13
13748
14089
  }
13749
14090
  }), /*#__PURE__*/React__default.createElement(ConditionalWrapper, {
@@ -13758,92 +14099,17 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13758
14099
  __self: undefined,
13759
14100
  __source: {
13760
14101
  fileName: _jsxFileName$w,
13761
- lineNumber: 795,
14102
+ lineNumber: 945,
13762
14103
  columnNumber: 19
13763
14104
  }
13764
14105
  }, child),
13765
14106
  __self: undefined,
13766
14107
  __source: {
13767
14108
  fileName: _jsxFileName$w,
13768
- lineNumber: 792,
14109
+ lineNumber: 942,
13769
14110
  columnNumber: 15
13770
14111
  }
13771
- }, isOpen && items.map((item, index) => {
13772
- var _item$render;
13773
- return /*#__PURE__*/React__default.createElement(ItemWrapper$1, _extends({
13774
- key: item.id
13775
- }, getItemProps({
13776
- item,
13777
- index: index,
13778
- disabled: item.isDisabled
13779
- }), {
13780
- css: {
13781
- backgroundColor: highlightedIndex === index ? '$bgGray' : 'white',
13782
- cursor: item.isDisabled ? 'not-allowed' : 'pointer',
13783
- color: item.isDisabled ? '$textDisable' : 'textPrimary'
13784
- },
13785
- __self: undefined,
13786
- __source: {
13787
- fileName: _jsxFileName$w,
13788
- lineNumber: 807,
13789
- columnNumber: 21
13790
- }
13791
- }), /*#__PURE__*/React__default.createElement(IconWrapper, {
13792
- css: {
13793
- width: '16px',
13794
- height: '16px',
13795
- border: '1px solid $bgBorder',
13796
- cursor: item.isDisabled ? 'not-allowed' : 'pointer'
13797
- },
13798
- __self: undefined,
13799
- __source: {
13800
- fileName: _jsxFileName$w,
13801
- lineNumber: 820,
13802
- columnNumber: 23
13803
- }
13804
- }, !(item !== null && item !== void 0 && item.hideCheck) && (item.isDisabled ? /*#__PURE__*/React__default.createElement(CheckOutline, {
13805
- color: colors$8.iconDisable,
13806
- __self: undefined,
13807
- __source: {
13808
- fileName: _jsxFileName$w,
13809
- lineNumber: 830,
13810
- columnNumber: 29
13811
- }
13812
- }) : selectedValue.includes(item.id) && (item.isDisabled === false || item.isDisabled === undefined) && /*#__PURE__*/React__default.createElement(CheckOutline, {
13813
- color: colors$8.iconGreen,
13814
- __self: undefined,
13815
- __source: {
13816
- fileName: _jsxFileName$w,
13817
- lineNumber: 834,
13818
- columnNumber: 31
13819
- }
13820
- })), isShowSelectAll && (item === null || item === void 0 ? void 0 : item.id) === '!all' && selectedValue !== null && selectedValue !== void 0 && selectedValue.length && (selectedValue === null || selectedValue === void 0 ? void 0 : selectedValue.length) < (items === null || items === void 0 ? void 0 : items.length) ? /*#__PURE__*/React__default.createElement(IndeterminateFilled$1, {
13821
- __self: undefined,
13822
- __source: {
13823
- fileName: _jsxFileName$w,
13824
- lineNumber: 841,
13825
- columnNumber: 27
13826
- }
13827
- }, "-") : /*#__PURE__*/React__default.createElement("div", {
13828
- __self: undefined,
13829
- __source: {
13830
- fileName: _jsxFileName$w,
13831
- lineNumber: 843,
13832
- columnNumber: 27
13833
- }
13834
- })), /*#__PURE__*/React__default.createElement(Item$3, {
13835
- css: {
13836
- backgroundColor: 'unset',
13837
- width: '100%'
13838
- },
13839
- __self: undefined,
13840
- __source: {
13841
- fileName: _jsxFileName$w,
13842
- lineNumber: 846,
13843
- columnNumber: 23
13844
- }
13845
- }, item.render ? (_item$render = item.render) === null || _item$render === void 0 ? void 0 : _item$render.call(item, item.name) : item.name));
13846
- }))) : /*#__PURE__*/React__default.createElement(Option, _extends({
14112
+ }, isOpen && items.map((item, index) => item !== null && item !== void 0 && item.children ? renderOptionGroupItem(item, index) : renderOptionItem(item, index)))) : /*#__PURE__*/React__default.createElement(Option, _extends({
13847
14113
  css: {
13848
14114
  height: 'auto'
13849
14115
  }
@@ -13853,14 +14119,14 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13853
14119
  __self: undefined,
13854
14120
  __source: {
13855
14121
  fileName: _jsxFileName$w,
13856
- lineNumber: 854,
14122
+ lineNumber: 962,
13857
14123
  columnNumber: 13
13858
14124
  }
13859
14125
  }), /*#__PURE__*/React__default.createElement(StyledDiv, {
13860
14126
  __self: undefined,
13861
14127
  __source: {
13862
14128
  fileName: _jsxFileName$w,
13863
- lineNumber: 855,
14129
+ lineNumber: 963,
13864
14130
  columnNumber: 15
13865
14131
  }
13866
14132
  }, /*#__PURE__*/React__default.createElement("div", {
@@ -13870,7 +14136,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13870
14136
  __self: undefined,
13871
14137
  __source: {
13872
14138
  fileName: _jsxFileName$w,
13873
- lineNumber: 856,
14139
+ lineNumber: 964,
13874
14140
  columnNumber: 17
13875
14141
  }
13876
14142
  }, /*#__PURE__*/React__default.createElement(CircleInfoOutline, {
@@ -13882,7 +14148,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
13882
14148
  __self: undefined,
13883
14149
  __source: {
13884
14150
  fileName: _jsxFileName$w,
13885
- lineNumber: 857,
14151
+ lineNumber: 965,
13886
14152
  columnNumber: 19
13887
14153
  }
13888
14154
  })), textEmptyItem != null ? textEmptyItem : t('emptyItemText', 'Item tidak ditemukan')))));
@@ -17148,6 +17414,32 @@ var _jsxFileName$r = "/Users/ryanakbar20/Documents/project/majoo/majoo-ui/packag
17148
17414
  const Input$3 = styled('input', {
17149
17415
  display: 'none'
17150
17416
  });
17417
+ const InputTime = styled('input', {
17418
+ width: 44,
17419
+ border: 'none',
17420
+ outline: 'none',
17421
+ fontWeight: 600,
17422
+ fontStyle: 'normal',
17423
+ fontSize: 28,
17424
+ color: '$textPrimary',
17425
+ letterSpacing: 2,
17426
+ '&:read-only': {
17427
+ backgroundColor: '$bgWhite'
17428
+ },
17429
+ '&:disabled': {
17430
+ backgroundColor: '$gray100'
17431
+ },
17432
+ variants: {
17433
+ size: {
17434
+ sm: {
17435
+ fontSize: 28
17436
+ },
17437
+ lg: {
17438
+ fontSize: 32
17439
+ }
17440
+ }
17441
+ }
17442
+ });
17151
17443
  const Time = styled('p', {
17152
17444
  fontWeight: 600,
17153
17445
  fontStyle: 'normal',
@@ -17229,27 +17521,30 @@ const IconDown = styled(ChevronDownOutline, {
17229
17521
  });
17230
17522
  const IconStateFull$2 = props => {
17231
17523
  const [isHover, setIsHover] = useState(false);
17232
- function toggleHover() {
17233
- setIsHover(!isHover);
17524
+ function handleEnter() {
17525
+ setIsHover(true);
17526
+ }
17527
+ function handleLeave() {
17528
+ setIsHover(false);
17234
17529
  }
17235
17530
  return props.type === 'up' ? /*#__PURE__*/React__default.createElement(IconUp, _extends({}, props, {
17236
17531
  color: isHover && !props.disabled ? '#04C99E' : '#404545',
17237
- onMouseEnter: toggleHover,
17238
- onMouseLeave: toggleHover,
17532
+ onMouseEnter: handleEnter,
17533
+ onMouseLeave: handleLeave,
17239
17534
  __self: undefined,
17240
17535
  __source: {
17241
17536
  fileName: _jsxFileName$r,
17242
- lineNumber: 101,
17537
+ lineNumber: 134,
17243
17538
  columnNumber: 5
17244
17539
  }
17245
17540
  })) : /*#__PURE__*/React__default.createElement(IconDown, _extends({}, props, {
17246
17541
  color: isHover && !props.disabled ? '#04C99E' : '#404545',
17247
- onMouseEnter: toggleHover,
17248
- onMouseLeave: toggleHover,
17542
+ onMouseEnter: handleEnter,
17543
+ onMouseLeave: handleLeave,
17249
17544
  __self: undefined,
17250
17545
  __source: {
17251
17546
  fileName: _jsxFileName$r,
17252
- lineNumber: 108,
17547
+ lineNumber: 141,
17253
17548
  columnNumber: 5
17254
17549
  }
17255
17550
  }));
@@ -17271,6 +17566,7 @@ const NativeTimePicker = ({
17271
17566
  }) => {
17272
17567
  const [date, setDate] = useState(value ? value : defaultValue ? defaultValue : moment());
17273
17568
  const format = 'HH:mm';
17569
+ const inputRef = React__default.useRef(false);
17274
17570
  function handleChange(e) {
17275
17571
  onChange(e, moment(e).format(format));
17276
17572
  }
@@ -17304,6 +17600,65 @@ const NativeTimePicker = ({
17304
17600
  }
17305
17601
  }
17306
17602
  }
17603
+ function handleInputChange(type, e) {
17604
+ var _e$target;
17605
+ const value = e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value;
17606
+ const format = 'DD:MM:YYYY:HH:mm';
17607
+ const minLength = (value === null || value === void 0 ? void 0 : value.length) > 1;
17608
+ const hourValue = params => moment(moment(`${moment(date).format('DD:MM:YYYY:mm')}:${params}`, 'DD:MM:YYYY:mm:HH').toDate());
17609
+ const minuteValue = params => moment(moment(`${moment(date).format('DD:MM:YYYY:HH')}:${params}`, 'DD:MM:YYYY:HH:mm').toDate());
17610
+ if (!disabled) {
17611
+ if (type === 'hour') {
17612
+ if (value < 0 && minLength) {
17613
+ setNewDate(minDate || hourValue(0));
17614
+ inputRef.current = false;
17615
+ return;
17616
+ }
17617
+ if (value > 23 && minLength) {
17618
+ setNewDate(maxDate || hourValue(23));
17619
+ inputRef.current = false;
17620
+ return;
17621
+ }
17622
+ if (minDate && hourValue(value) < moment(minDate) && minLength) {
17623
+ setNewDate(minDate);
17624
+ inputRef.current = false;
17625
+ return;
17626
+ }
17627
+ if (maxDate && hourValue(value) > moment(maxDate) && minLength) {
17628
+ setNewDate(maxDate);
17629
+ inputRef.current = false;
17630
+ return;
17631
+ }
17632
+ setNewDate(moment(moment(`${moment(date).format('DD:MM:YYYY')}:${value}:${moment(date).format('mm')}`, format).toDate()));
17633
+ inputRef.current = true;
17634
+ } else {
17635
+ if (value < 0 && minLength) {
17636
+ setNewDate(minuteValue(0));
17637
+ inputRef.current = false;
17638
+ return;
17639
+ }
17640
+ if (value > 59 && minLength) {
17641
+ setNewDate(minuteValue(59));
17642
+ inputRef.current = false;
17643
+ return;
17644
+ }
17645
+ if (minDate && minuteValue(value) < moment(minDate) && minLength) {
17646
+ setNewDate(minDate);
17647
+ inputRef.current = false;
17648
+ return;
17649
+ }
17650
+ if (maxDate && minuteValue(value) > moment(maxDate) && minLength) {
17651
+ setNewDate(maxDate);
17652
+ inputRef.current = false;
17653
+ return;
17654
+ }
17655
+ setNewDate(moment(moment(`${moment(date).format('DD:MM:YYYY:HH')}:${value}`, format).toDate()));
17656
+ inputRef.current = true;
17657
+ }
17658
+ }
17659
+ }
17660
+ const hourValue = moment(date).format('HH');
17661
+ const minuteValue = moment(date).format('mm');
17307
17662
  return /*#__PURE__*/React__default.createElement(Flex$1, {
17308
17663
  direction: "column",
17309
17664
  align: "center",
@@ -17315,7 +17670,7 @@ const NativeTimePicker = ({
17315
17670
  __self: undefined,
17316
17671
  __source: {
17317
17672
  fileName: _jsxFileName$r,
17318
- lineNumber: 185,
17673
+ lineNumber: 285,
17319
17674
  columnNumber: 5
17320
17675
  }
17321
17676
  }, /*#__PURE__*/React__default.createElement(Flex$1, {
@@ -17324,7 +17679,7 @@ const NativeTimePicker = ({
17324
17679
  __self: undefined,
17325
17680
  __source: {
17326
17681
  fileName: _jsxFileName$r,
17327
- lineNumber: 191,
17682
+ lineNumber: 291,
17328
17683
  columnNumber: 7
17329
17684
  }
17330
17685
  }, /*#__PURE__*/React__default.createElement(IconStateFull$2, {
@@ -17334,7 +17689,7 @@ const NativeTimePicker = ({
17334
17689
  __self: undefined,
17335
17690
  __source: {
17336
17691
  fileName: _jsxFileName$r,
17337
- lineNumber: 192,
17692
+ lineNumber: 292,
17338
17693
  columnNumber: 9
17339
17694
  }
17340
17695
  }), /*#__PURE__*/React__default.createElement(IconStateFull$2, {
@@ -17344,7 +17699,7 @@ const NativeTimePicker = ({
17344
17699
  __self: undefined,
17345
17700
  __source: {
17346
17701
  fileName: _jsxFileName$r,
17347
- lineNumber: 197,
17702
+ lineNumber: 297,
17348
17703
  columnNumber: 9
17349
17704
  }
17350
17705
  })), /*#__PURE__*/React__default.createElement(Input$3, {
@@ -17355,24 +17710,64 @@ const NativeTimePicker = ({
17355
17710
  __self: undefined,
17356
17711
  __source: {
17357
17712
  fileName: _jsxFileName$r,
17358
- lineNumber: 203,
17713
+ lineNumber: 303,
17359
17714
  columnNumber: 7
17360
17715
  }
17716
+ }), /*#__PURE__*/React__default.createElement(Flex$1, {
17717
+ gap: 1,
17718
+ __self: undefined,
17719
+ __source: {
17720
+ fileName: _jsxFileName$r,
17721
+ lineNumber: 304,
17722
+ columnNumber: 7
17723
+ }
17724
+ }, /*#__PURE__*/React__default.createElement(InputTime, {
17725
+ size: size,
17726
+ maxLength: 2,
17727
+ disabled: disabled,
17728
+ readOnly: disabledHourIncrease || disabledHourDecrease || disabledHour,
17729
+ defaultValue: hourValue,
17730
+ value: !inputRef.current ? hourValue : undefined,
17731
+ onChange: e => handleInputChange('hour', e),
17732
+ onFocus: () => inputRef.current = true,
17733
+ onBlur: () => inputRef.current = false,
17734
+ __self: undefined,
17735
+ __source: {
17736
+ fileName: _jsxFileName$r,
17737
+ lineNumber: 305,
17738
+ columnNumber: 9
17739
+ }
17361
17740
  }), /*#__PURE__*/React__default.createElement(Time, {
17362
17741
  size: size,
17363
17742
  __self: undefined,
17364
17743
  __source: {
17365
17744
  fileName: _jsxFileName$r,
17366
- lineNumber: 204,
17367
- columnNumber: 7
17745
+ lineNumber: 316,
17746
+ columnNumber: 9
17368
17747
  }
17369
- }, moment(date).format(format)), /*#__PURE__*/React__default.createElement(Flex$1, {
17748
+ }, ":"), /*#__PURE__*/React__default.createElement(InputTime, {
17749
+ size: size,
17750
+ maxLength: 2,
17751
+ disabled: disabled,
17752
+ readOnly: disabledMinuteIncrease || disabledMinuteDecrease || disabledMinute,
17753
+ defaultValue: minuteValue,
17754
+ value: !inputRef.current ? minuteValue : undefined,
17755
+ onChange: e => handleInputChange('minute', e),
17756
+ onFocus: () => inputRef.current = true,
17757
+ onBlur: () => inputRef.current = false,
17758
+ __self: undefined,
17759
+ __source: {
17760
+ fileName: _jsxFileName$r,
17761
+ lineNumber: 317,
17762
+ columnNumber: 9
17763
+ }
17764
+ })), /*#__PURE__*/React__default.createElement(Flex$1, {
17370
17765
  direction: "row",
17371
17766
  gap: 6,
17372
17767
  __self: undefined,
17373
17768
  __source: {
17374
17769
  fileName: _jsxFileName$r,
17375
- lineNumber: 205,
17770
+ lineNumber: 329,
17376
17771
  columnNumber: 7
17377
17772
  }
17378
17773
  }, /*#__PURE__*/React__default.createElement(IconStateFull$2, {
@@ -17382,7 +17777,7 @@ const NativeTimePicker = ({
17382
17777
  __self: undefined,
17383
17778
  __source: {
17384
17779
  fileName: _jsxFileName$r,
17385
- lineNumber: 206,
17780
+ lineNumber: 330,
17386
17781
  columnNumber: 9
17387
17782
  }
17388
17783
  }), /*#__PURE__*/React__default.createElement(IconStateFull$2, {
@@ -17392,7 +17787,7 @@ const NativeTimePicker = ({
17392
17787
  __self: undefined,
17393
17788
  __source: {
17394
17789
  fileName: _jsxFileName$r,
17395
- lineNumber: 211,
17790
+ lineNumber: 335,
17396
17791
  columnNumber: 9
17397
17792
  }
17398
17793
  })));
@@ -17477,7 +17872,7 @@ const TimePicker = ({
17477
17872
  __self: undefined,
17478
17873
  __source: {
17479
17874
  fileName: _jsxFileName$r,
17480
- lineNumber: 293,
17875
+ lineNumber: 417,
17481
17876
  columnNumber: 5
17482
17877
  }
17483
17878
  }, /*#__PURE__*/React__default.createElement(NativeTimePicker, {
@@ -17497,7 +17892,7 @@ const TimePicker = ({
17497
17892
  __self: undefined,
17498
17893
  __source: {
17499
17894
  fileName: _jsxFileName$r,
17500
- lineNumber: 294,
17895
+ lineNumber: 418,
17501
17896
  columnNumber: 7
17502
17897
  }
17503
17898
  }));
@@ -19319,7 +19714,7 @@ const StyledList = styled(TabsPrimitive.List, {
19319
19714
  display: 'none'
19320
19715
  }
19321
19716
  });
19322
- const StyledTrigger$1 = styled(TabsPrimitive.Trigger, {
19717
+ const StyledTrigger = styled(TabsPrimitive.Trigger, {
19323
19718
  all: 'unset',
19324
19719
  fontFamily: 'inherit',
19325
19720
  backgroundColor: 'white',
@@ -19550,7 +19945,7 @@ const TabsTrigger$1 = _ref3 => {
19550
19945
  } = _ref3,
19551
19946
  props = _objectWithoutPropertiesLoose(_ref3, _excluded3$1);
19552
19947
  const [isIconHovered, setIsIconHovered] = useState(false);
19553
- return /*#__PURE__*/React__default.createElement(StyledTrigger$1, _extends({
19948
+ return /*#__PURE__*/React__default.createElement(StyledTrigger, _extends({
19554
19949
  value: value
19555
19950
  }, props, {
19556
19951
  __self: undefined,
@@ -20205,107 +20600,6 @@ ModalDialog.defaultProps = {
20205
20600
  layer: '$modal'
20206
20601
  };
20207
20602
 
20208
- const StyledAccordion = styled(AccordionPrimitive.Root, {});
20209
- const Accordion = /*#__PURE__*/React.forwardRef((_a, forwardedRef) => {
20210
- var {
20211
- children
20212
- } = _a,
20213
- props = __rest(_a, ["children"]);
20214
- return jsx(StyledAccordion, Object.assign({
20215
- ref: forwardedRef
20216
- }, props, props.type === 'single' ? {
20217
- collapsible: true
20218
- } : {}, {
20219
- children: children
20220
- }), void 0);
20221
- });
20222
- const StyledItem$1 = styled(AccordionPrimitive.Item, {
20223
- borderTop: '1px solid $colors$slate6',
20224
- '&:last-of-type': {
20225
- borderBottom: '1px solid $colors$slate6'
20226
- }
20227
- });
20228
- const StyledHeader = styled(AccordionPrimitive.Header, {
20229
- all: 'unset'
20230
- });
20231
- const StyledTrigger = styled(AccordionPrimitive.Trigger, {
20232
- all: 'unset',
20233
- boxSizing: 'border-box',
20234
- userSelect: 'none',
20235
- '&::before': {
20236
- boxSizing: 'border-box'
20237
- },
20238
- '&::after': {
20239
- boxSizing: 'border-box'
20240
- },
20241
- cursor: 'pointer',
20242
- display: 'flex',
20243
- alignItems: 'center',
20244
- color: '$hiContrast',
20245
- width: '100%',
20246
- '@hover': {
20247
- '&:hover': {
20248
- backgroundColor: '$slate2'
20249
- }
20250
- },
20251
- '&:focus': {
20252
- outline: 'none',
20253
- boxShadow: 'inset 0 0 0 1px $colors$slate8, 0 0 0 1px $colors$slate8'
20254
- },
20255
- '& svg.icon-cdf': {
20256
- color: '$white',
20257
- size: '24px',
20258
- transition: 'transform 175ms cubic-bezier(0.65, 0, 0.35, 1)'
20259
- },
20260
- '& svg.right': {
20261
- marginRight: '$spacing-05'
20262
- },
20263
- '&[data-state="open"]': {
20264
- '& svg.icon-cdf': {
20265
- transform: 'rotate(180deg)'
20266
- }
20267
- },
20268
- variants: {
20269
- arrowPosition: {
20270
- right: {
20271
- justifyContent: 'space-between'
20272
- },
20273
- left: {
20274
- justifyContent: 'start'
20275
- }
20276
- }
20277
- }
20278
- });
20279
- const AccordionTrigger = /*#__PURE__*/React.forwardRef((_a, forwardedRef) => {
20280
- var {
20281
- children,
20282
- arrowPosition = 'right',
20283
- hasContent = true,
20284
- arrowColor = 'white'
20285
- } = _a,
20286
- props = __rest(_a, ["children", "arrowPosition", "hasContent", "arrowColor"]);
20287
- return jsx(StyledHeader, {
20288
- children: jsx(StyledTrigger, Object.assign({}, props, {
20289
- arrowPosition: arrowPosition,
20290
- ref: forwardedRef
20291
- }, {
20292
- children: arrowPosition === 'right' ? jsxs(Fragment, {
20293
- children: [children, hasContent && jsx(ChevronDownOutline, {
20294
- className: "icon-cdf right",
20295
- color: arrowColor
20296
- }, void 0)]
20297
- }, void 0) : jsxs(Fragment, {
20298
- children: [hasContent && jsx(ChevronDownOutline, {
20299
- className: "icon-cdf left",
20300
- color: arrowColor
20301
- }, void 0), children]
20302
- }, void 0)
20303
- }), void 0)
20304
- }, void 0);
20305
- });
20306
- const AccordionItem = StyledItem$1;
20307
- const AccordionContent = AccordionPrimitive.Content;
20308
-
20309
20603
  const removeUndefinedFields = obj => {
20310
20604
  let newObj = {};
20311
20605
  Object.keys(obj).forEach(key => {
@@ -32020,13 +32314,17 @@ const Required$2 = styled('span', {
32020
32314
  color: '$textRed !important'
32021
32315
  });
32022
32316
  function EditableTableMobile(props) {
32317
+ var _a, _b;
32023
32318
  const {
32319
+ rowVirtualizer,
32320
+ tableContainerRef,
32024
32321
  instance,
32025
32322
  showCheckbox,
32026
32323
  customRows,
32027
32324
  onExpand,
32028
32325
  hiddenColumns,
32029
- customEmptyDataProps
32326
+ customEmptyDataProps,
32327
+ virtualized
32030
32328
  } = props;
32031
32329
  const {
32032
32330
  getTableProps,
@@ -32068,121 +32366,131 @@ function EditableTableMobile(props) {
32068
32366
  showInMobile
32069
32367
  };
32070
32368
  };
32071
- const renderTableRow = (row, index, customStyle) => {
32369
+ const renderTableRow = (row, customStyle) => {
32370
+ var _a;
32072
32371
  return jsxs(Fragment, {
32073
- children: [/*#__PURE__*/createElement$2(TableRow$2, Object.assign({
32372
+ children: [jsx(TableRow$2, Object.assign({
32074
32373
  css: customStyle
32075
32374
  }, row.getRowProps(), {
32076
- key: `row_mobile_${index}`
32077
- }), row.cells.map((cell, index) => {
32078
- var _a, _b;
32079
- const isMobileHeader = (_a = cell === null || cell === void 0 ? void 0 : cell.column) === null || _a === void 0 ? void 0 : _a.isMobileHeader;
32080
- const isSelector = ((_b = cell === null || cell === void 0 ? void 0 : cell.column) === null || _b === void 0 ? void 0 : _b.id) === 'selection';
32081
- return (isMobileHeader || isSelector) && /*#__PURE__*/createElement$2(TableCell$2, Object.assign({}, cell.getCellProps({
32082
- style: {
32083
- minWidth: cell.column.minWidth,
32084
- width: isSelector ? 10 : cell.column.width,
32085
- maxWidth: isSelector ? 10 : cell.column.maxWidth
32086
- }
32087
- }), {
32088
- key: index
32089
- }), jsxs(Flex$1, Object.assign({
32090
- align: "center",
32091
- justify: "between",
32092
- css: {
32093
- cursor: 'pointer',
32094
- minHeight: 40
32095
- }
32096
- }, {
32097
- children: [jsx(Box, {
32098
- children: cell.render('Cell')
32099
- }, void 0), !isSelector && jsx(Flex$1, Object.assign({
32100
- justify: "center",
32375
+ children: row.cells.map((cell, index) => {
32376
+ var _a, _b;
32377
+ const isMobileHeader = (_a = cell === null || cell === void 0 ? void 0 : cell.column) === null || _a === void 0 ? void 0 : _a.isMobileHeader;
32378
+ const isSelector = ((_b = cell === null || cell === void 0 ? void 0 : cell.column) === null || _b === void 0 ? void 0 : _b.id) === 'selection';
32379
+ return (isMobileHeader || isSelector) && /*#__PURE__*/createElement$2(TableCell$2, Object.assign({}, cell.getCellProps({
32380
+ style: {
32381
+ minWidth: cell.column.minWidth,
32382
+ width: isSelector ? 10 : cell.column.width,
32383
+ maxWidth: isSelector ? 10 : cell.column.maxWidth
32384
+ }
32385
+ }), {
32386
+ key: `cell-body-${index}`
32387
+ }), jsxs(Flex$1, Object.assign({
32101
32388
  align: "center",
32102
- onClick: () => {
32103
- var _a;
32104
- if (!((_a = Object.keys(state.expanded)) === null || _a === void 0 ? void 0 : _a.includes(row.id))) {
32105
- toggleAllRowsExpanded(false);
32106
- }
32107
- row.toggleRowExpanded(!row.isExpanded);
32108
- onExpand === null || onExpand === void 0 ? void 0 : onExpand(!row.isExpanded);
32389
+ justify: "between",
32390
+ css: {
32391
+ cursor: 'pointer',
32392
+ minHeight: 40
32109
32393
  }
32110
32394
  }, {
32111
- children: row.isExpanded ? jsx(ChevronUpOutline, {}, void 0) : jsx(ChevronDownOutline, {}, void 0)
32112
- }), void 0)]
32113
- }), void 0));
32114
- })), /*#__PURE__*/createElement$2(TableRowCollapse, Object.assign({}, row.getRowProps(), {
32115
- key: `row_mobile_collapse_${index}`,
32395
+ children: [jsx(Box, {
32396
+ children: cell.render('Cell')
32397
+ }, void 0), !isSelector && jsx(Flex$1, Object.assign({
32398
+ justify: "center",
32399
+ align: "center",
32400
+ onClick: () => {
32401
+ var _a;
32402
+ if (!((_a = Object.keys(state.expanded)) === null || _a === void 0 ? void 0 : _a.includes(row.id))) {
32403
+ toggleAllRowsExpanded(false);
32404
+ }
32405
+ row.toggleRowExpanded(!row.isExpanded);
32406
+ onExpand === null || onExpand === void 0 ? void 0 : onExpand(!row.isExpanded);
32407
+ }
32408
+ }, {
32409
+ children: row.isExpanded ? jsx(ChevronUpOutline, {}, void 0) : jsx(ChevronDownOutline, {}, void 0)
32410
+ }), void 0)]
32411
+ }), void 0));
32412
+ })
32413
+ }), void 0), jsxs(TableRowCollapse, Object.assign({
32116
32414
  css: {
32117
32415
  backgroundColor: '$gray50'
32118
32416
  }
32119
- }), showCheckbox && jsx(TableCell$2, {}, void 0), jsx(TableCellCollapse, {
32120
- children: jsx(Collapalse, Object.assign({
32121
- isOpen: row.isExpanded
32122
- }, {
32123
- children: jsx(Flex$1, Object.assign({
32124
- direction: "column",
32125
- css: {
32126
- borderTop: '1pt solid $bgBorder'
32127
- }
32417
+ }, {
32418
+ children: [showCheckbox && jsx(TableCell$2, {}, void 0), jsx(TableCellCollapse, {
32419
+ children: jsx(Collapalse, Object.assign({
32420
+ isOpen: row.isExpanded
32128
32421
  }, {
32129
- children: row.cells.filter(cell => {
32130
- var _a, _b, _c, _d;
32131
- return typeof ((_a = cell === null || cell === void 0 ? void 0 : cell.column) === null || _a === void 0 ? void 0 : _a.hidden) === 'boolean' ? !((_b = cell === null || cell === void 0 ? void 0 : cell.column) === null || _b === void 0 ? void 0 : _b.hidden) : !((_d = (_c = cell === null || cell === void 0 ? void 0 : cell.column) === null || _c === void 0 ? void 0 : _c.hidden) === null || _d === void 0 ? void 0 : _d.call(_c, cell));
32132
- }).map((cell, index) => {
32133
- var _a, _b, _c, _d;
32134
- const headerRender = (_a = cell === null || cell === void 0 ? void 0 : cell.column) === null || _a === void 0 ? void 0 : _a.Header;
32135
- const isMobileHeader = (_b = cell === null || cell === void 0 ? void 0 : cell.column) === null || _b === void 0 ? void 0 : _b.isMobileHeader;
32136
- const isSelector = ((_c = cell === null || cell === void 0 ? void 0 : cell.column) === null || _c === void 0 ? void 0 : _c.id) === 'selection';
32137
- return !isMobileHeader && !isSelector && jsx(Flex$1, Object.assign({
32138
- direction: "column",
32139
- justify: "center",
32140
- css: {
32141
- borderBottom: '1pt solid $bgBorder',
32142
- padding: '10px 12px',
32143
- minHeight: 52
32144
- }
32145
- }, {
32146
- children: jsxs(Grid, Object.assign({
32147
- columns: 6,
32148
- flow: "row",
32422
+ children: jsx(Flex$1, Object.assign({
32423
+ direction: "column",
32424
+ css: {
32425
+ borderTop: '1pt solid $bgBorder'
32426
+ }
32427
+ }, {
32428
+ children: row.cells.filter(cell => {
32429
+ var _a, _b, _c, _d;
32430
+ return typeof ((_a = cell === null || cell === void 0 ? void 0 : cell.column) === null || _a === void 0 ? void 0 : _a.hidden) === 'boolean' ? !((_b = cell === null || cell === void 0 ? void 0 : cell.column) === null || _b === void 0 ? void 0 : _b.hidden) : !((_d = (_c = cell === null || cell === void 0 ? void 0 : cell.column) === null || _c === void 0 ? void 0 : _c.hidden) === null || _d === void 0 ? void 0 : _d.call(_c, cell));
32431
+ }).map((cell, index) => {
32432
+ var _a, _b, _c, _d;
32433
+ const headerRender = (_a = cell === null || cell === void 0 ? void 0 : cell.column) === null || _a === void 0 ? void 0 : _a.Header;
32434
+ const isMobileHeader = (_b = cell === null || cell === void 0 ? void 0 : cell.column) === null || _b === void 0 ? void 0 : _b.isMobileHeader;
32435
+ const isSelector = ((_c = cell === null || cell === void 0 ? void 0 : cell.column) === null || _c === void 0 ? void 0 : _c.id) === 'selection';
32436
+ return !isMobileHeader && !isSelector && jsx(Flex$1, Object.assign({
32437
+ direction: "column",
32438
+ justify: "center",
32149
32439
  css: {
32150
- gridRowGap: '$spacing-04',
32151
- gridColumnGap: '$spacing-04',
32152
- alignItems: 'center'
32440
+ borderBottom: '1pt solid $bgBorder',
32441
+ padding: '10px 12px',
32442
+ minHeight: 52
32153
32443
  }
32154
32444
  }, {
32155
- children: [jsx(GridItem, Object.assign({
32156
- colSpan: 3
32445
+ children: jsxs(Grid, Object.assign({
32446
+ columns: 6,
32447
+ flow: "row",
32448
+ css: {
32449
+ gridRowGap: '$spacing-04',
32450
+ gridColumnGap: '$spacing-04',
32451
+ alignItems: 'center'
32452
+ }
32157
32453
  }, {
32158
- children: jsx(Heading, Object.assign({
32159
- heading: "headerTable",
32160
- color: "secondary"
32454
+ children: [jsx(GridItem, Object.assign({
32455
+ colSpan: 3
32161
32456
  }, {
32162
- children: typeof headerRender === 'string' ? jsxs(Fragment, {
32163
- children: [headerRender === null || headerRender === void 0 ? void 0 : headerRender.toUpperCase(), ((_d = cell === null || cell === void 0 ? void 0 : cell.column) === null || _d === void 0 ? void 0 : _d.isRequired) ? jsx(Required$2, {
32164
- children: "*"
32165
- }, void 0) : '']
32166
- }, void 0) : headerRender
32167
- }), void 0)
32168
- }), void 0), jsx(GridItem, Object.assign({
32169
- colSpan: 3
32170
- }, {
32171
- children: jsx(Flex$1, Object.assign({
32172
- justify: "end"
32457
+ children: jsx(Heading, Object.assign({
32458
+ heading: "headerTable",
32459
+ color: "secondary"
32460
+ }, {
32461
+ children: typeof headerRender === 'string' ? jsxs(Fragment, {
32462
+ children: [headerRender === null || headerRender === void 0 ? void 0 : headerRender.toUpperCase(), ((_d = cell === null || cell === void 0 ? void 0 : cell.column) === null || _d === void 0 ? void 0 : _d.isRequired) ? jsx(Required$2, {
32463
+ children: "*"
32464
+ }, void 0) : '']
32465
+ }, void 0) : headerRender
32466
+ }), void 0)
32467
+ }), void 0), jsx(GridItem, Object.assign({
32468
+ colSpan: 3
32173
32469
  }, {
32174
- children: cell.render('Cell')
32175
- }), void 0)
32176
- }), void 0)]
32177
- }), void 0)
32178
- }), index);
32179
- })
32470
+ children: jsx(Flex$1, Object.assign({
32471
+ justify: "end"
32472
+ }, {
32473
+ children: cell.render('Cell')
32474
+ }), void 0)
32475
+ }), void 0)]
32476
+ }), void 0)
32477
+ }), `cell-collapse-${index}`);
32478
+ })
32479
+ }), void 0)
32180
32480
  }), void 0)
32181
- }), void 0)
32182
- }, void 0))]
32481
+ }, void 0)]
32482
+ }), 'row-collapse-' + ((_a = row.getRowProps()) === null || _a === void 0 ? void 0 : _a.key))]
32183
32483
  }, void 0);
32184
32484
  };
32485
+ const {
32486
+ virtualItems: virtualRows,
32487
+ totalSize
32488
+ } = rowVirtualizer;
32489
+ const paddingTop = virtualRows.length > 0 ? ((_a = virtualRows === null || virtualRows === void 0 ? void 0 : virtualRows[0]) === null || _a === void 0 ? void 0 : _a.start) || 0 : 0;
32490
+ const paddingBottom = virtualRows.length > 0 ? totalSize - (((_b = virtualRows === null || virtualRows === void 0 ? void 0 : virtualRows[virtualRows.length - 1]) === null || _b === void 0 ? void 0 : _b.end) || 0) : 0;
32491
+ const tableRowData = virtualized ? virtualRows : rows;
32185
32492
  return jsx(TableContainer$2, Object.assign({
32493
+ ref: tableContainerRef,
32186
32494
  css: props === null || props === void 0 ? void 0 : props.css
32187
32495
  }, {
32188
32496
  children: jsxs(TableContent$2, Object.assign({}, getTableProps(), {
@@ -32193,7 +32501,7 @@ function EditableTableMobile(props) {
32193
32501
  return typeof (column === null || column === void 0 ? void 0 : column.hidden) === 'boolean' ? !(column === null || column === void 0 ? void 0 : column.hidden) : !((_a = column === null || column === void 0 ? void 0 : column.hidden) === null || _a === void 0 ? void 0 : _a.call(column, column));
32194
32502
  });
32195
32503
  return /*#__PURE__*/createElement$2(TableHeadRow$2, Object.assign({}, headerGroup.getHeaderGroupProps(), {
32196
- key: index
32504
+ key: `head-row-${index}`
32197
32505
  }), visibleHeaders.map((column, index) => {
32198
32506
  const isMobileHeader = column === null || column === void 0 ? void 0 : column.isMobileHeader;
32199
32507
  const isSelector = (column === null || column === void 0 ? void 0 : column.id) === 'selection';
@@ -32204,14 +32512,21 @@ function EditableTableMobile(props) {
32204
32512
  maxWidth: isSelector ? 10 : column.maxWidth
32205
32513
  }
32206
32514
  }), {
32207
- key: index
32515
+ key: `head-cell-${index}`
32208
32516
  }), column.render('Header'), (column === null || column === void 0 ? void 0 : column.isRequired) ? jsx(Required$2, {
32209
32517
  children: "*"
32210
32518
  }, void 0) : '');
32211
32519
  }));
32212
32520
  })
32213
- }, void 0), jsx(TableBody$2, Object.assign({}, getTableBodyProps(), {
32214
- children: rows.map((row, index) => {
32521
+ }, void 0), jsxs(TableBody$2, Object.assign({}, getTableBodyProps(), {
32522
+ children: [virtualized && paddingTop > 0 && jsx("tr", {
32523
+ children: jsx("td", {
32524
+ style: {
32525
+ height: `${paddingTop}px`
32526
+ }
32527
+ }, void 0)
32528
+ }, void 0), tableRowData === null || tableRowData === void 0 ? void 0 : tableRowData.map((dataRow, index) => {
32529
+ const row = virtualized ? rows === null || rows === void 0 ? void 0 : rows[dataRow === null || dataRow === void 0 ? void 0 : dataRow.index] : dataRow;
32215
32530
  prepareRow(row);
32216
32531
  const {
32217
32532
  customStyle
@@ -32219,13 +32534,19 @@ function EditableTableMobile(props) {
32219
32534
  const {
32220
32535
  CustomRow,
32221
32536
  showInMobile
32222
- } = getCustomRows(row, () => renderTableRow(row, index, customStyle));
32537
+ } = getCustomRows(row, () => renderTableRow(row, customStyle));
32223
32538
  return jsx(React__default.Fragment, {
32224
32539
  children: CustomRow && showInMobile ? jsx(CustomRow, {
32225
32540
  style: customStyle
32226
- }, void 0) : renderTableRow(row, index, customStyle)
32541
+ }, void 0) : renderTableRow(row, customStyle)
32227
32542
  }, index);
32228
- })
32543
+ }), virtualized && paddingBottom > 0 && jsx("tr", {
32544
+ children: jsx("td", {
32545
+ style: {
32546
+ height: `${paddingBottom}px`
32547
+ }
32548
+ }, void 0)
32549
+ }, void 0)]
32229
32550
  }), void 0), rows.length < 1 && jsx(TableFoot$1, {
32230
32551
  children: jsx(TableFootRow$1, {
32231
32552
  children: jsx(TableFootCell$1, Object.assign({
@@ -49726,6 +50047,7 @@ function Remove(props) {
49726
50047
  }, void 0);
49727
50048
  }
49728
50049
  function EditableTable(props) {
50050
+ var _a, _b;
49729
50051
  const {
49730
50052
  columns,
49731
50053
  data,
@@ -49740,12 +50062,14 @@ function EditableTable(props) {
49740
50062
  onExpand,
49741
50063
  isMobileLayout,
49742
50064
  hiddenColumns,
49743
- customEmptyDataProps: emptyDataProps
50065
+ customEmptyDataProps: emptyDataProps,
50066
+ virtualized = false
49744
50067
  } = props;
49745
50068
  const {
49746
50069
  t
49747
50070
  } = useTranslation('MajooUI/table');
49748
50071
  const [selectedIndex, setSelectedIndex] = useState(null);
50072
+ const isMobile = useMediaQuery(isMobileLayout === undefined ? '(max-width: 767px)' : isMobileLayout ? '(max-width: 8000px)' : '(max-width: 0px)');
49749
50073
  const IndeterminateCheckbox = props => {
49750
50074
  function handleCheckedChange(checked) {
49751
50075
  props === null || props === void 0 ? void 0 : props.onChange({
@@ -49804,6 +50128,19 @@ function EditableTable(props) {
49804
50128
  selectedRowIds
49805
50129
  }
49806
50130
  } = instance;
50131
+ const tableContainerRef = useRef(null);
50132
+ const rowVirtualizer = useVirtual({
50133
+ parentRef: tableContainerRef,
50134
+ size: data === null || data === void 0 ? void 0 : data.length,
50135
+ overscan: isMobile ? 20 : 10,
50136
+ estimateSize: useCallback(() => isMobile ? 40 : rowHeight || 80, [isMobile, rowHeight])
50137
+ });
50138
+ const {
50139
+ virtualItems: virtualRows,
50140
+ totalSize
50141
+ } = rowVirtualizer;
50142
+ const paddingTop = virtualRows.length > 0 ? ((_a = virtualRows === null || virtualRows === void 0 ? void 0 : virtualRows[0]) === null || _a === void 0 ? void 0 : _a.start) || 0 : 0;
50143
+ const paddingBottom = virtualRows.length > 0 ? totalSize - (((_b = virtualRows === null || virtualRows === void 0 ? void 0 : virtualRows[virtualRows.length - 1]) === null || _b === void 0 ? void 0 : _b.end) || 0) : 0;
49807
50144
  useEffect(() => {
49808
50145
  if (hiddenColumns) setHiddenColumns(hiddenColumns);
49809
50146
  }, [hiddenColumns, setHiddenColumns]);
@@ -49817,7 +50154,6 @@ function EditableTable(props) {
49817
50154
  });
49818
50155
  }
49819
50156
  }, [selectedRowIds, data, onSelectedChange, selectedIndex]);
49820
- const isMobile = useMediaQuery(isMobileLayout === undefined ? '(max-width: 767px)' : isMobileLayout ? '(max-width: 8000px)' : '(max-width: 0px)');
49821
50157
  const customEmptyDataProps = emptyDataProps || defaultEmptyDataProps(t, isMobile);
49822
50158
  const getCustomRows = (row, renderRow) => {
49823
50159
  var _a;
@@ -49870,7 +50206,9 @@ function EditableTable(props) {
49870
50206
  })
49871
50207
  }), void 0);
49872
50208
  };
50209
+ const tableRowData = virtualized ? virtualRows : rows;
49873
50210
  return !isMobile ? jsx(TableContainer$1, Object.assign({
50211
+ ref: tableContainerRef,
49874
50212
  css: props === null || props === void 0 ? void 0 : props.css
49875
50213
  }, {
49876
50214
  children: jsxs(TableContent$1, Object.assign({}, getTableProps(), {
@@ -49894,8 +50232,15 @@ function EditableTable(props) {
49894
50232
  }), void 0))
49895
50233
  }), void 0);
49896
50234
  })
49897
- }, void 0), jsx(TableBody$1, Object.assign({}, getTableBodyProps(), {
49898
- children: rows.map((row, index) => {
50235
+ }, void 0), jsxs(TableBody$1, Object.assign({}, getTableBodyProps(), {
50236
+ children: [virtualized && paddingTop > 0 && jsx("tr", {
50237
+ children: jsx("td", {
50238
+ style: {
50239
+ height: `${paddingTop}px`
50240
+ }
50241
+ }, void 0)
50242
+ }, void 0), tableRowData.map((dataRow, index) => {
50243
+ const row = virtualized ? rows === null || rows === void 0 ? void 0 : rows[dataRow === null || dataRow === void 0 ? void 0 : dataRow.index] : dataRow;
49899
50244
  prepareRow(row);
49900
50245
  const subRowCells = row.cells.filter(cell => cell.column.isSubRow);
49901
50246
  const notNullHeaderColumns = visibleColumns.filter(column => typeof column.Header !== 'function' && column.Header !== null && !column.isSubRow);
@@ -49950,7 +50295,13 @@ function EditableTable(props) {
49950
50295
  }), cell.column.id);
49951
50296
  })]
49952
50297
  }, index);
49953
- })
50298
+ }), virtualized && paddingBottom > 0 && jsx("tr", {
50299
+ children: jsx("td", {
50300
+ style: {
50301
+ height: `${paddingBottom}px`
50302
+ }
50303
+ }, void 0)
50304
+ }, void 0)]
49954
50305
  }), void 0), rows.length < 1 && jsx(TableFoot, {
49955
50306
  children: jsx(TableFootRow, {
49956
50307
  children: jsx(TableFootCell, Object.assign({
@@ -49978,7 +50329,10 @@ function EditableTable(props) {
49978
50329
  customRows: customRows,
49979
50330
  onExpand: onExpand,
49980
50331
  hiddenColumns: hiddenColumns,
49981
- customEmptyDataProps: customEmptyDataProps
50332
+ customEmptyDataProps: customEmptyDataProps,
50333
+ virtualized: virtualized,
50334
+ rowVirtualizer: rowVirtualizer,
50335
+ tableContainerRef: tableContainerRef
49982
50336
  }, void 0);
49983
50337
  }
49984
50338
  EditableTable.Product = Product;