@vitrosoftware/common-ui-ts 1.1.164 → 1.1.166

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.
@@ -1,11 +1,22 @@
1
1
  .vitro-editable-list {
2
2
  flex-direction: column;
3
+ max-height: 100%;
4
+ padding: 19px 0 19px 24px;
5
+ }
6
+
7
+ .vitro-editable-list > :global(.ps) {
8
+ padding-right: 24px;
9
+ }
10
+
11
+ .vitro-editable-list > :global(.ps):global(.ps__rail-x),
12
+ .vitro-editable-list > :global(.ps) :global(.ps__rail-y) {
13
+ background-color: transparent !important;
3
14
  }
4
15
 
5
16
  .vitro-header {
6
17
  width: 100%;
7
18
  min-height: 32px;
8
- padding: 0px 4px;
19
+ padding: 0px 28px 0 4px;
9
20
  }
10
21
 
11
22
  .vitro-create-button {
@@ -38,7 +49,13 @@
38
49
  }
39
50
 
40
51
  .vitro-dropdown-button :global(.dropdown-menu) {
41
- transform: translate3d(calc(100% - 50px), 26px, 0) !important;
52
+ position: fixed !important;
53
+ inset: auto 0 auto 0 !important;
54
+ }
55
+
56
+ .vitro-dropdown-button .vitro-dropdown-menu-top::before {
57
+ top: calc(100% - 1px);
58
+ transform: rotate(180deg);
42
59
  }
43
60
 
44
61
  .vitro-dropdown-button :global(.dropdown-menu::before) {
@@ -6,7 +6,7 @@
6
6
  }
7
7
 
8
8
  .vitro-search.vitro-active {
9
- width: 376px;
9
+ width: 100%;
10
10
  }
11
11
 
12
12
  .vitro-settings-dialog {
@@ -284,9 +284,9 @@
284
284
  }
285
285
 
286
286
  .vitro-sidebar-group-slideup-panel .vitro-scrollbar > div:first-child {
287
- padding: 0 12px 12px 12px !important;
287
+ padding: 0 16px 12px 16px !important;
288
288
  max-height: none !important;
289
- height: 100% !important;
289
+ height: calc(100% - 32px);
290
290
  }
291
291
 
292
292
  .vitro-sidebar-group-slideup-panel .vitro-scrollbar > div:first-child > ul {
@@ -129,10 +129,25 @@
129
129
  float: right;
130
130
  }
131
131
 
132
+ .vitro-tree-view.vitro-arrow-right :global(.vitro-root-node.jstree-closed) > :global(.jstree-ocl),
133
+ .vitro-tree-view.vitro-arrow-right :global(.vitro-root-node.jstree-open) > :global(.jstree-ocl) {
134
+ display: inline-block;
135
+ }
136
+
137
+ .vitro-tree-view.vitro-arrow-right :global(.jstree-open) > :global(.jstree-ocl) {
138
+ transform: rotate(180deg);
139
+ }
140
+
141
+ .vitro-tree-view.vitro-arrow-right :global(.jstree-closed) > :global(.jstree-ocl) {
142
+ background-image: url('@vitrosoftware/common-ui-ts/css/std/controls/tree-view/img/collapse-bottom-grey.svg');
143
+ }
144
+
132
145
  .vitro-tree-view.vitro-arrow-right :global(.jstree-container-ul) {
133
146
  max-width: 100%;
134
147
  }
135
148
 
136
149
  .vitro-tree-view.vitro-arrow-right :global(.jstree-anchor) {
137
150
  width: calc(100% - 24px);
138
- }
151
+ overflow: hidden;
152
+ text-overflow: ellipsis;
153
+ }
package/dist/index.css CHANGED
@@ -547,13 +547,29 @@ html, body {
547
547
  float: right;
548
548
  }
549
549
 
550
+ ._tree-view_vitro-tree-view_3oii-CW._tree-view_vitro-arrow-right_dVxSsID .vitro-root-node.jstree-closed > .jstree-ocl,
551
+ ._tree-view_vitro-tree-view_3oii-CW._tree-view_vitro-arrow-right_dVxSsID .vitro-root-node.jstree-open > .jstree-ocl {
552
+ display: inline-block;
553
+ }
554
+
555
+ ._tree-view_vitro-tree-view_3oii-CW._tree-view_vitro-arrow-right_dVxSsID .jstree-open > .jstree-ocl {
556
+ transform: rotate(180deg);
557
+ }
558
+
559
+ ._tree-view_vitro-tree-view_3oii-CW._tree-view_vitro-arrow-right_dVxSsID .jstree-closed > .jstree-ocl {
560
+ background-image: url('@vitrosoftware/common-ui-ts/css/std/controls/tree-view/img/collapse-bottom-grey.svg');
561
+ }
562
+
550
563
  ._tree-view_vitro-tree-view_3oii-CW._tree-view_vitro-arrow-right_dVxSsID .jstree-container-ul {
551
564
  max-width: 100%;
552
565
  }
553
566
 
554
567
  ._tree-view_vitro-tree-view_3oii-CW._tree-view_vitro-arrow-right_dVxSsID .jstree-anchor {
555
568
  width: calc(100% - 24px);
556
- }
569
+ overflow: hidden;
570
+ text-overflow: ellipsis;
571
+ }
572
+
557
573
  ._progress_vitro-progress-container_3Dbhbpo {
558
574
  width: 100%;
559
575
  height: 100%;
@@ -5133,9 +5149,9 @@ li:first-child ._command-menu-item_vitro-item_2pVhk23:hover {
5133
5149
  }
5134
5150
 
5135
5151
  ._sidebar-item_vitro-sidebar-group-slideup-panel_15tkxuO ._sidebar-item_vitro-scrollbar___xylIx > div:first-child {
5136
- padding: 0 12px 12px 12px !important;
5152
+ padding: 0 16px 12px 16px !important;
5137
5153
  max-height: none !important;
5138
- height: 100% !important;
5154
+ height: calc(100% - 32px);
5139
5155
  }
5140
5156
 
5141
5157
  ._sidebar-item_vitro-sidebar-group-slideup-panel_15tkxuO ._sidebar-item_vitro-scrollbar___xylIx > div:first-child > ul {
@@ -6960,7 +6976,7 @@ li:first-child ._command-menu-item_vitro-item_2pVhk23:hover {
6960
6976
  }
6961
6977
 
6962
6978
  ._search_vitro-search_QkJksC_._search_vitro-active_1HhQOCR {
6963
- width: 376px;
6979
+ width: 100%;
6964
6980
  }
6965
6981
 
6966
6982
  ._search_vitro-settings-dialog_1_c5bIg {
@@ -8230,12 +8246,23 @@ li:first-child ._command-menu-item_vitro-item_2pVhk23:hover {
8230
8246
  }
8231
8247
  ._editable-list_vitro-editable-list_2y8aXbO {
8232
8248
  flex-direction: column;
8249
+ max-height: 100%;
8250
+ padding: 19px 0 19px 24px;
8251
+ }
8252
+
8253
+ ._editable-list_vitro-editable-list_2y8aXbO > .ps {
8254
+ padding-right: 24px;
8255
+ }
8256
+
8257
+ ._editable-list_vitro-editable-list_2y8aXbO > .ps.ps__rail-x,
8258
+ ._editable-list_vitro-editable-list_2y8aXbO > .ps .ps__rail-y {
8259
+ background-color: transparent !important;
8233
8260
  }
8234
8261
 
8235
8262
  ._editable-list_vitro-header_3ilVZhe {
8236
8263
  width: 100%;
8237
8264
  min-height: 32px;
8238
- padding: 0px 4px;
8265
+ padding: 0px 28px 0 4px;
8239
8266
  }
8240
8267
 
8241
8268
  ._editable-list_vitro-create-button_3E1aQDB {
@@ -8268,7 +8295,13 @@ li:first-child ._command-menu-item_vitro-item_2pVhk23:hover {
8268
8295
  }
8269
8296
 
8270
8297
  ._editable-list_vitro-dropdown-button_vPtNQxA .dropdown-menu {
8271
- transform: translate3d(calc(100% - 50px), 26px, 0) !important;
8298
+ position: fixed !important;
8299
+ inset: auto 0 auto 0 !important;
8300
+ }
8301
+
8302
+ ._editable-list_vitro-dropdown-button_vPtNQxA ._editable-list_vitro-dropdown-menu-top_1miFWtX::before {
8303
+ top: calc(100% - 1px);
8304
+ transform: rotate(180deg);
8272
8305
  }
8273
8306
 
8274
8307
  ._editable-list_vitro-dropdown-button_vPtNQxA .dropdown-menu::before {
package/dist/index.js CHANGED
@@ -480,12 +480,16 @@ var ScrollBar = function ScrollBar(props) {
480
480
  });
481
481
  React.useEffect(function () {
482
482
  if (ref.current) {
483
+ ref.current.addEventListener('ps-scroll-y', onScrollY);
483
484
  init();
484
485
  }
485
486
  return function () {
486
487
  if (element) {
487
488
  element.destroy();
488
489
  }
490
+ if (ref.current) {
491
+ ref.current.removeEventListener('ps-scroll-y', onScrollY);
492
+ }
489
493
  };
490
494
  }, []);
491
495
  React.useEffect(function () {
@@ -521,6 +525,11 @@ var ScrollBar = function ScrollBar(props) {
521
525
  var onWheel = function onWheel(e) {
522
526
  e.stopPropagation();
523
527
  };
528
+ var onScrollY = function onScrollY(e) {
529
+ if (ref.current && props.onScrollY) {
530
+ props.onScrollY(e, ref.current);
531
+ }
532
+ };
524
533
  return React__default.createElement("div", {
525
534
  ref: ref,
526
535
  className: props.className || CTRL.EMPTY
@@ -20516,6 +20525,8 @@ var METHOD;
20516
20525
  METHOD["GET_BOTTOM_CHECKED"] = "get_bottom_checked";
20517
20526
  METHOD["IS_CHECKED"] = "is_checked";
20518
20527
  METHOD["IS_UNDETERMINED"] = "is_undetermined";
20528
+ METHOD["CLEAR_STATE"] = "clear_state";
20529
+ METHOD["SET_ICON"] = "set_icon";
20519
20530
  })(METHOD || (METHOD = {}));
20520
20531
  var EVENT;
20521
20532
  (function (EVENT) {
@@ -20525,6 +20536,8 @@ var EVENT;
20525
20536
  EVENT["MODEL"] = "model.jstree";
20526
20537
  EVENT["DBLCLICK"] = "dblclick.jstree";
20527
20538
  EVENT["DROP"] = "drop.vakata.jstree";
20539
+ EVENT["HOVER_NODE"] = "hover_node.jstree";
20540
+ EVENT["DEHOVER_NODE"] = "dehover_node.jstree";
20528
20541
  })(EVENT || (EVENT = {}));
20529
20542
  var NODE_TYPE;
20530
20543
  (function (NODE_TYPE) {
@@ -20734,7 +20747,10 @@ var JsTreeViewContextImpl = /*#__PURE__*/function () {
20734
20747
  return this.jsTree.jstree(METHOD.IS_UNDETERMINED, node);
20735
20748
  };
20736
20749
  _proto.clearState = function clearState() {
20737
- return this.jsTree.jstree('clear_state');
20750
+ return this.jsTree.jstree(METHOD.CLEAR_STATE);
20751
+ };
20752
+ _proto.setIcon = function setIcon(obj, icon) {
20753
+ this.jsTree.jstree(METHOD.SET_ICON, obj, icon);
20738
20754
  };
20739
20755
  return JsTreeViewContextImpl;
20740
20756
  }();
@@ -20789,7 +20805,29 @@ var TreeView = function TreeView(props) {
20789
20805
  onDrop(e);
20790
20806
  });
20791
20807
  }
20808
+ if (jsTreeTreeView) {
20809
+ jsTreeTreeView.setEventHandler({
20810
+ id: EVENT.HOVER_NODE,
20811
+ process: onHoverNode
20812
+ });
20813
+ jsTreeTreeView.setEventHandler({
20814
+ id: EVENT.DEHOVER_NODE,
20815
+ process: onDehoverNode
20816
+ });
20817
+ }
20792
20818
  }, [jsTreeTreeView]);
20819
+ var onHoverNode = function onHoverNode(treeView, e, obj) {
20820
+ var _obj$node$original;
20821
+ if ((_obj$node$original = obj.node.original) !== null && _obj$node$original !== void 0 && _obj$node$original.imageHoverUrl) {
20822
+ treeView.setIcon(obj.node, obj.node.original.imageHoverUrl);
20823
+ }
20824
+ };
20825
+ var onDehoverNode = function onDehoverNode(treeView, e, obj) {
20826
+ var _obj$node$original2, _obj$node$original3;
20827
+ if (obj.node.icon && (_obj$node$original2 = obj.node.original) !== null && _obj$node$original2 !== void 0 && _obj$node$original2.imageHoverUrl && (_obj$node$original3 = obj.node.original) !== null && _obj$node$original3 !== void 0 && _obj$node$original3.imageUrl) {
20828
+ treeView.setIcon(obj.node, obj.node.original.imageUrl);
20829
+ }
20830
+ };
20793
20831
  var init = function init() {
20794
20832
  config.core.data = getData;
20795
20833
  jquery(jsTreeRef.current).jstree(config);
@@ -22212,8 +22250,8 @@ var renderMicrofrontend = function renderMicrofrontend(rendererName, microFronte
22212
22250
  }
22213
22251
  };
22214
22252
 
22215
- var MicroFrontend = function MicroFrontend(props) {
22216
- var rootRef = React.useRef(null);
22253
+ var MicroFrontend = React.forwardRef(function (props, ref) {
22254
+ var rootRef = ref || React.useRef(null);
22217
22255
  var containerId = props.data && props.data.containerId ? props.data.containerId : props.name;
22218
22256
  var microFrontendState = React.useMemo(function () {
22219
22257
  return new MicroFrontendState();
@@ -22276,7 +22314,7 @@ var MicroFrontend = function MicroFrontend(props) {
22276
22314
  id: containerId,
22277
22315
  ref: rootRef
22278
22316
  });
22279
- };
22317
+ });
22280
22318
 
22281
22319
  var EVENT$2;
22282
22320
  (function (EVENT) {
@@ -60876,23 +60914,26 @@ var Button$2 = React.forwardRef(function (props, ref) {
60876
60914
  }
60877
60915
  };
60878
60916
  var onClick = function onClick(e) {
60879
- if (props.onClick) {
60880
- setPending(true);
60881
- var promise = props.onClick(e);
60882
- if (promise && promise["finally"]) {
60883
- promise["finally"](function () {
60917
+ var _ref$current;
60918
+ if (!props.isDisabled && !(ref !== null && ref !== void 0 && (_ref$current = ref.current) !== null && _ref$current !== void 0 && _ref$current.disabled)) {
60919
+ if (props.onClick) {
60920
+ setPending(true);
60921
+ var promise = props.onClick(e);
60922
+ if (promise && promise["finally"]) {
60923
+ promise["finally"](function () {
60924
+ setPending(false);
60925
+ });
60926
+ } else {
60884
60927
  setPending(false);
60928
+ }
60929
+ } else if (props.to) {
60930
+ var event = new CustomEvent(exports.EVENT.HISTORY_UPDATE, {
60931
+ detail: {
60932
+ pathname: props.to
60933
+ }
60885
60934
  });
60886
- } else {
60887
- setPending(false);
60935
+ window.dispatchEvent(event);
60888
60936
  }
60889
- } else if (props.to) {
60890
- var event = new CustomEvent(exports.EVENT.HISTORY_UPDATE, {
60891
- detail: {
60892
- pathname: props.to
60893
- }
60894
- });
60895
- window.dispatchEvent(event);
60896
60937
  }
60897
60938
  };
60898
60939
  return React__default.createElement("button", {
@@ -61774,10 +61815,11 @@ var DropdownButton = function DropdownButton(props) {
61774
61815
  }) : React__default.createElement("span", {
61775
61816
  className: styles$p['vitro-dropdown-icon']
61776
61817
  })), React__default.createElement(BootstrapDropdown.Menu, {
61777
- renderOnMount: false,
61818
+ renderOnMount: props.isRenderOnMount,
61778
61819
  flip: props.isFlip !== false,
61779
61820
  style: props.menuStyle || {},
61780
- popperConfig: props.popperConfig || {}
61821
+ popperConfig: props.popperConfig || {},
61822
+ ref: props.onGetMenuRef
61781
61823
  }, React__default.createElement(ScrollBar, null, itemList.map(function (x) {
61782
61824
  return React__default.createElement(BootstrapDropdown.Item, {
61783
61825
  key: x.key,
@@ -61907,12 +61949,6 @@ var TabGroupComponent = function TabGroupComponent(props) {
61907
61949
  var _useState2 = React.useState(0),
61908
61950
  currentTab = _useState2[0],
61909
61951
  setCurrentTab = _useState2[1];
61910
- var _useState3 = React.useState(null),
61911
- component = _useState3[0],
61912
- setComponent = _useState3[1];
61913
- var _useState4 = React.useState([]),
61914
- tabList = _useState4[0],
61915
- setTabList = _useState4[1];
61916
61952
  var ref = React.useRef(null);
61917
61953
  var resizeObserver = new window.ResizeObserver(function (entries) {
61918
61954
  for (var _iterator = _createForOfIteratorHelperLoose(entries), _step; !(_step = _iterator()).done;) {
@@ -61940,33 +61976,25 @@ var TabGroupComponent = function TabGroupComponent(props) {
61940
61976
  resizeObserver.disconnect();
61941
61977
  };
61942
61978
  }, []);
61943
- React.useEffect(function () {
61979
+ var getContent = function getContent() {
61944
61980
  if (props.itemList) {
61945
61981
  if (props.itemList[currentTab] && props.itemList[currentTab].content) {
61946
- var c = React__default.createElement(props.itemList[currentTab].content.component, props.itemList[currentTab].content.props);
61947
- setComponent(c);
61982
+ return React__default.createElement(props.itemList[currentTab].content.component, props.itemList[currentTab].content.props);
61948
61983
  } else if (props.itemList[0]) {
61949
61984
  setCurrentTab(0);
61950
61985
  }
61951
- } else {
61952
- setComponent(null);
61953
- }
61954
- }, [currentTab, props.itemList]);
61955
- React.useEffect(function () {
61956
- if (props.itemList) {
61957
- var list = props.itemList.map(function (item, index) {
61958
- return _extends({}, item, {
61959
- index: index
61960
- });
61961
- });
61962
- setTabList(list);
61963
61986
  }
61964
- }, [props.itemList]);
61987
+ return null;
61988
+ };
61965
61989
  return React__default.createElement("div", {
61966
61990
  className: styles$q['vitro-tab'] + (props.className ? CTRL.SPACE + props.className : CTRL.EMPTY),
61967
61991
  ref: ref
61968
61992
  }, React__default.createElement(TabGroupHeader, {
61969
- itemList: tabList,
61993
+ itemList: props.itemList.map(function (item, index) {
61994
+ return _extends({}, item, {
61995
+ index: index
61996
+ });
61997
+ }),
61970
61998
  width: width,
61971
61999
  currentTab: currentTab,
61972
62000
  changeTab: changeTab,
@@ -61974,7 +62002,7 @@ var TabGroupComponent = function TabGroupComponent(props) {
61974
62002
  isDisabled: props.isDisabled
61975
62003
  }), React__default.createElement("div", {
61976
62004
  className: 'vitro-content'
61977
- }, component));
62005
+ }, getContent()));
61978
62006
  };
61979
62007
 
61980
62008
  var tabScriptList = [{
@@ -62984,10 +63012,11 @@ var Input = React.forwardRef(function (props, ref) {
62984
63012
  return MAX_LENGTH.SINGLELINE;
62985
63013
  };
62986
63014
  var getValue = function getValue(value) {
63015
+ var stringValue = value.toString();
62987
63016
  if (!props.isMultiline) {
62988
- return value.substring(0, getMaxLength());
63017
+ return stringValue.substring(0, getMaxLength());
62989
63018
  }
62990
- return value;
63019
+ return stringValue;
62991
63020
  };
62992
63021
  if (props.isMultiline) {
62993
63022
  control = React__default.createElement(Textarea, {
@@ -63488,7 +63517,7 @@ var Viewer = function Viewer(props) {
63488
63517
  };
63489
63518
 
63490
63519
  var name = "@vitrosoftware/common-ui-ts";
63491
- var version$1 = "1.1.164";
63520
+ var version$1 = "1.1.166";
63492
63521
  var description = "vitro software common ui ts";
63493
63522
  var author = "";
63494
63523
  var license = "MIT";
@@ -65461,6 +65490,12 @@ var SlideUpPanel = function SlideUpPanel(props) {
65461
65490
  setSwipePosition = _useState3[1];
65462
65491
  var contentRef = React.useRef(null);
65463
65492
  var buttonRef = React.useRef(null);
65493
+ React.useEffect(function () {
65494
+ window.addEventListener(exports.EVENT.CLICK, onClickOutsideSlideUp);
65495
+ return function () {
65496
+ window.removeEventListener(exports.EVENT.CLICK, onClickOutsideSlideUp);
65497
+ };
65498
+ }, []);
65464
65499
  React.useEffect(function () {
65465
65500
  setIsShow(props.isShow);
65466
65501
  if (props.isShow) {
@@ -65476,6 +65511,12 @@ var SlideUpPanel = function SlideUpPanel(props) {
65476
65511
  contentRef.current.style.height = contentRef.current.offsetHeight + UNIT.PX;
65477
65512
  }
65478
65513
  }, [isExpanded]);
65514
+ var onClickOutsideSlideUp = function onClickOutsideSlideUp(e) {
65515
+ var slideUpContent = contentRef.current;
65516
+ if (slideUpContent && slideUpContent.parentNode && e.target === slideUpContent.parentNode) {
65517
+ close();
65518
+ }
65519
+ };
65479
65520
  var onTouchStart = function onTouchStart(e) {
65480
65521
  setSwipePosition(_extends({}, swipePosition, {
65481
65522
  start: e.changedTouches[0].clientY
@@ -67520,6 +67561,7 @@ var SearchInput = function SearchInput(props) {
67520
67561
  };
67521
67562
  var onCancel = function onCancel() {
67522
67563
  resetValue();
67564
+ onBlur();
67523
67565
  props.onCancel();
67524
67566
  };
67525
67567
  var onChange = function onChange(e) {
@@ -83720,9 +83762,11 @@ var Switch = function Switch(props) {
83720
83762
  }));
83721
83763
  };
83722
83764
 
83723
- var styles$1L = {"vitro-editable-list":"_editable-list_vitro-editable-list_2y8aXbO","vitro-header":"_editable-list_vitro-header_3ilVZhe","vitro-create-button":"_editable-list_vitro-create-button_3E1aQDB","vitro-editable-item":"_editable-list_vitro-editable-item_cWSWi1n","vitro-active":"_editable-list_vitro-active_39PUrSM","vitro-button-container":"_editable-list_vitro-button-container_1okfn08","vitro-dropdown-button":"_editable-list_vitro-dropdown-button_vPtNQxA","vitro-display-none":"_editable-list_vitro-display-none_1nqU_hD","vitro-mobile":"_editable-list_vitro-mobile_2IDiwft","vitro-editable-item-icon":"_editable-list_vitro-editable-item-icon_29jFw_f","vitro-editable-item-label":"_editable-list_vitro-editable-item-label_3ViAKDq","vitro-header-mobile":"_editable-list_vitro-header-mobile_2EMihKc"};
83765
+ var styles$1L = {"vitro-editable-list":"_editable-list_vitro-editable-list_2y8aXbO","vitro-header":"_editable-list_vitro-header_3ilVZhe","vitro-create-button":"_editable-list_vitro-create-button_3E1aQDB","vitro-editable-item":"_editable-list_vitro-editable-item_cWSWi1n","vitro-active":"_editable-list_vitro-active_39PUrSM","vitro-button-container":"_editable-list_vitro-button-container_1okfn08","vitro-dropdown-button":"_editable-list_vitro-dropdown-button_vPtNQxA","vitro-dropdown-menu-top":"_editable-list_vitro-dropdown-menu-top_1miFWtX","vitro-display-none":"_editable-list_vitro-display-none_1nqU_hD","vitro-mobile":"_editable-list_vitro-mobile_2IDiwft","vitro-editable-item-icon":"_editable-list_vitro-editable-item-icon_29jFw_f","vitro-editable-item-label":"_editable-list_vitro-editable-item-label_3ViAKDq","vitro-header-mobile":"_editable-list_vitro-header-mobile_2EMihKc"};
83724
83766
 
83725
83767
  var CSS_CLASS_MOBILE = 'vitro-mobile';
83768
+ var TRANSLATE_X = 49;
83769
+ var TRANSLATE_Y = 37;
83726
83770
  var EditableItem = function EditableItem(props) {
83727
83771
  var _useState = React.useState(props.text),
83728
83772
  text = _useState[0],
@@ -83758,6 +83802,19 @@ var EditableItem = function EditableItem(props) {
83758
83802
  props.onToggleDropdown(state);
83759
83803
  }
83760
83804
  };
83805
+ var initDropdownMenuPosition = function initDropdownMenuPosition(element) {
83806
+ if (element) {
83807
+ var rect = element.getBoundingClientRect();
83808
+ if (!element.classList.contains(styles$1L['vitro-dropdown-menu-top'])) {
83809
+ if (rect.y > window.innerHeight) {
83810
+ element.classList.add(styles$1L['vitro-dropdown-menu-top']);
83811
+ element.style.transform = "translate(calc(100% - " + (TRANSLATE_X + UNIT.PX) + "), calc(-" + (props.scrollTop + UNIT.PX) + " - 100% - " + (TRANSLATE_Y + UNIT.PX) + "))";
83812
+ } else {
83813
+ element.style.transform = "translate(calc(100% - " + (TRANSLATE_X + UNIT.PX) + "), -" + (props.scrollTop + UNIT.PX) + ")";
83814
+ }
83815
+ }
83816
+ }
83817
+ };
83761
83818
  return React__default.createElement(FlexBox, {
83762
83819
  onMouseOver: function onMouseOver() {
83763
83820
  return setIsHover(true);
@@ -83780,27 +83837,22 @@ var EditableItem = function EditableItem(props) {
83780
83837
  autoFocus: true
83781
83838
  }) : React__default.createElement(Label, {
83782
83839
  text: props.text || text
83783
- }), props.isMobileView ? React__default.createElement("div", {
83784
- className: styles$1L['vitro-button-container']
83785
- }, dropdownItemList && dropdownItemList.length ? React__default.createElement(DropdownButton, {
83786
- itemList: dropdownItemList,
83787
- onToggle: onToggleDropdownButton,
83788
- isShow: props.isDropdownActive,
83789
- className: styles$1L['vitro-dropdown-button'],
83790
- isFlip: true,
83791
- popperConfig: props.popperConfig
83792
- }) : null) : React__default.createElement("div", {
83840
+ }), React__default.createElement("div", {
83793
83841
  className: styles$1L['vitro-button-container']
83794
83842
  }, dropdownItemList && dropdownItemList.length ? React__default.createElement(DropdownButton, {
83795
83843
  itemList: dropdownItemList,
83796
83844
  onToggle: onToggleDropdownButton,
83797
83845
  isShow: props.isDropdownActive,
83798
- className: styles$1L['vitro-dropdown-button'] + (props.isActive || isHover ? CTRL.EMPTY : CTRL.SPACE + styles$1L['vitro-display-none'])
83799
- }) : null, props.button && React__default.createElement(FlexBox, {
83846
+ className: styles$1L['vitro-dropdown-button'] + (!props.isMobileView ? props.isActive || isHover ? CTRL.EMPTY : CTRL.SPACE + styles$1L['vitro-display-none'] : CTRL.EMPTY),
83847
+ isFlip: props.isMobileView,
83848
+ popperConfig: props.popperConfig,
83849
+ onGetMenuRef: initDropdownMenuPosition
83850
+ }) : null, !props.isMobileView && props.button && React__default.createElement(FlexBox, {
83800
83851
  className: (props.isActive || isHover) && dropdownItemList ? styles$1L['vitro-display-none'] : CTRL.EMPTY
83801
83852
  }, props.button)));
83802
83853
  };
83803
83854
 
83855
+ var MemoList = React__default.memo(List);
83804
83856
  var EditableList = function EditableList(props) {
83805
83857
  var _useState = React.useState(),
83806
83858
  editedItem = _useState[0],
@@ -83811,6 +83863,9 @@ var EditableList = function EditableList(props) {
83811
83863
  var _useState3 = React.useState(),
83812
83864
  activeDropdownItemId = _useState3[0],
83813
83865
  setActiveDropdownItemId = _useState3[1];
83866
+ var _useState4 = React.useState(0),
83867
+ scrollTop = _useState4[0],
83868
+ setScrollTop = _useState4[1];
83814
83869
  var changedFieldValueMap = React.useMemo(function () {
83815
83870
  return new Map();
83816
83871
  }, []);
@@ -83878,6 +83933,11 @@ var EditableList = function EditableList(props) {
83878
83933
  setActiveDropdownItemId(undefined);
83879
83934
  }
83880
83935
  };
83936
+ var onScrollY = function onScrollY(e, element) {
83937
+ if (element) {
83938
+ setScrollTop(element.scrollTop);
83939
+ }
83940
+ };
83881
83941
  return React__default.createElement(FlexBox, {
83882
83942
  className: styles$1L['vitro-editable-list'] + (props.className ? CTRL.SPACE + props.className : CTRL.EMPTY)
83883
83943
  }, React__default.createElement(FlexBox, {
@@ -83890,7 +83950,9 @@ var EditableList = function EditableList(props) {
83890
83950
  }, React__default.createElement(ImageButton, {
83891
83951
  onClick: onCreate,
83892
83952
  className: styles$1L['vitro-create-button']
83893
- }))), React__default.createElement(List, {
83953
+ }))), React__default.createElement(ScrollBar, {
83954
+ onScrollY: onScrollY
83955
+ }, React__default.createElement(MemoList, {
83894
83956
  itemList: props.itemList,
83895
83957
  itemTemplate: function itemTemplate(item) {
83896
83958
  return React__default.createElement(EditableItem, Object.assign({}, item, {
@@ -83911,7 +83973,8 @@ var EditableList = function EditableList(props) {
83911
83973
  getDropdownItemList: props.getDropdownItemList,
83912
83974
  isMobileView: props.isMobileView,
83913
83975
  icon: props.itemIcon,
83914
- popperConfig: props.popperConfig
83976
+ popperConfig: props.popperConfig,
83977
+ scrollTop: scrollTop
83915
83978
  }));
83916
83979
  },
83917
83980
  onClick: onClick
@@ -83926,7 +83989,7 @@ var EditableList = function EditableList(props) {
83926
83989
  isEditMode: props.isActiveNewItem === false ? false : true,
83927
83990
  isMobileView: props.isMobileView,
83928
83991
  icon: props.itemIcon
83929
- })));
83992
+ }))));
83930
83993
  };
83931
83994
 
83932
83995
  var styles$1M = {"vitro-reorderable-list":"_reorderable-list_vitro-reorderable-list_3Vinbji","vitro-reorderable-item":"_reorderable-list_vitro-reorderable-item_2gH3muk","vitro-drag-button":"_reorderable-list_vitro-drag-button_2gzxwKx","vitro-dragged-item":"_reorderable-list_vitro-dragged-item_fft3ham","vitro-drop-zone":"_reorderable-list_vitro-drop-zone_15pbLJE","vitro-hidden":"_reorderable-list_vitro-hidden_2ZpMCYZ"};