@vitrosoftware/common-ui-ts 1.1.165 → 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) {
package/dist/index.css CHANGED
@@ -8246,12 +8246,23 @@ li:first-child ._command-menu-item_vitro-item_2pVhk23:hover {
8246
8246
  }
8247
8247
  ._editable-list_vitro-editable-list_2y8aXbO {
8248
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;
8249
8260
  }
8250
8261
 
8251
8262
  ._editable-list_vitro-header_3ilVZhe {
8252
8263
  width: 100%;
8253
8264
  min-height: 32px;
8254
- padding: 0px 4px;
8265
+ padding: 0px 28px 0 4px;
8255
8266
  }
8256
8267
 
8257
8268
  ._editable-list_vitro-create-button_3E1aQDB {
@@ -8284,7 +8295,13 @@ li:first-child ._command-menu-item_vitro-item_2pVhk23:hover {
8284
8295
  }
8285
8296
 
8286
8297
  ._editable-list_vitro-dropdown-button_vPtNQxA .dropdown-menu {
8287
- 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);
8288
8305
  }
8289
8306
 
8290
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
@@ -60905,23 +60914,26 @@ var Button$2 = React.forwardRef(function (props, ref) {
60905
60914
  }
60906
60915
  };
60907
60916
  var onClick = function onClick(e) {
60908
- if (props.onClick) {
60909
- setPending(true);
60910
- var promise = props.onClick(e);
60911
- if (promise && promise["finally"]) {
60912
- 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 {
60913
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
+ }
60914
60934
  });
60915
- } else {
60916
- setPending(false);
60935
+ window.dispatchEvent(event);
60917
60936
  }
60918
- } else if (props.to) {
60919
- var event = new CustomEvent(exports.EVENT.HISTORY_UPDATE, {
60920
- detail: {
60921
- pathname: props.to
60922
- }
60923
- });
60924
- window.dispatchEvent(event);
60925
60937
  }
60926
60938
  };
60927
60939
  return React__default.createElement("button", {
@@ -61803,10 +61815,11 @@ var DropdownButton = function DropdownButton(props) {
61803
61815
  }) : React__default.createElement("span", {
61804
61816
  className: styles$p['vitro-dropdown-icon']
61805
61817
  })), React__default.createElement(BootstrapDropdown.Menu, {
61806
- renderOnMount: false,
61818
+ renderOnMount: props.isRenderOnMount,
61807
61819
  flip: props.isFlip !== false,
61808
61820
  style: props.menuStyle || {},
61809
- popperConfig: props.popperConfig || {}
61821
+ popperConfig: props.popperConfig || {},
61822
+ ref: props.onGetMenuRef
61810
61823
  }, React__default.createElement(ScrollBar, null, itemList.map(function (x) {
61811
61824
  return React__default.createElement(BootstrapDropdown.Item, {
61812
61825
  key: x.key,
@@ -61936,12 +61949,6 @@ var TabGroupComponent = function TabGroupComponent(props) {
61936
61949
  var _useState2 = React.useState(0),
61937
61950
  currentTab = _useState2[0],
61938
61951
  setCurrentTab = _useState2[1];
61939
- var _useState3 = React.useState(null),
61940
- component = _useState3[0],
61941
- setComponent = _useState3[1];
61942
- var _useState4 = React.useState([]),
61943
- tabList = _useState4[0],
61944
- setTabList = _useState4[1];
61945
61952
  var ref = React.useRef(null);
61946
61953
  var resizeObserver = new window.ResizeObserver(function (entries) {
61947
61954
  for (var _iterator = _createForOfIteratorHelperLoose(entries), _step; !(_step = _iterator()).done;) {
@@ -61969,33 +61976,25 @@ var TabGroupComponent = function TabGroupComponent(props) {
61969
61976
  resizeObserver.disconnect();
61970
61977
  };
61971
61978
  }, []);
61972
- React.useEffect(function () {
61979
+ var getContent = function getContent() {
61973
61980
  if (props.itemList) {
61974
61981
  if (props.itemList[currentTab] && props.itemList[currentTab].content) {
61975
- var c = React__default.createElement(props.itemList[currentTab].content.component, props.itemList[currentTab].content.props);
61976
- setComponent(c);
61982
+ return React__default.createElement(props.itemList[currentTab].content.component, props.itemList[currentTab].content.props);
61977
61983
  } else if (props.itemList[0]) {
61978
61984
  setCurrentTab(0);
61979
61985
  }
61980
- } else {
61981
- setComponent(null);
61982
61986
  }
61983
- }, [currentTab, props.itemList]);
61984
- React.useEffect(function () {
61985
- if (props.itemList) {
61986
- var list = props.itemList.map(function (item, index) {
61987
- return _extends({}, item, {
61988
- index: index
61989
- });
61990
- });
61991
- setTabList(list);
61992
- }
61993
- }, [props.itemList]);
61987
+ return null;
61988
+ };
61994
61989
  return React__default.createElement("div", {
61995
61990
  className: styles$q['vitro-tab'] + (props.className ? CTRL.SPACE + props.className : CTRL.EMPTY),
61996
61991
  ref: ref
61997
61992
  }, React__default.createElement(TabGroupHeader, {
61998
- itemList: tabList,
61993
+ itemList: props.itemList.map(function (item, index) {
61994
+ return _extends({}, item, {
61995
+ index: index
61996
+ });
61997
+ }),
61999
61998
  width: width,
62000
61999
  currentTab: currentTab,
62001
62000
  changeTab: changeTab,
@@ -62003,7 +62002,7 @@ var TabGroupComponent = function TabGroupComponent(props) {
62003
62002
  isDisabled: props.isDisabled
62004
62003
  }), React__default.createElement("div", {
62005
62004
  className: 'vitro-content'
62006
- }, component));
62005
+ }, getContent()));
62007
62006
  };
62008
62007
 
62009
62008
  var tabScriptList = [{
@@ -63013,10 +63012,11 @@ var Input = React.forwardRef(function (props, ref) {
63013
63012
  return MAX_LENGTH.SINGLELINE;
63014
63013
  };
63015
63014
  var getValue = function getValue(value) {
63015
+ var stringValue = value.toString();
63016
63016
  if (!props.isMultiline) {
63017
- return value.substring(0, getMaxLength());
63017
+ return stringValue.substring(0, getMaxLength());
63018
63018
  }
63019
- return value;
63019
+ return stringValue;
63020
63020
  };
63021
63021
  if (props.isMultiline) {
63022
63022
  control = React__default.createElement(Textarea, {
@@ -63517,7 +63517,7 @@ var Viewer = function Viewer(props) {
63517
63517
  };
63518
63518
 
63519
63519
  var name = "@vitrosoftware/common-ui-ts";
63520
- var version$1 = "1.1.165";
63520
+ var version$1 = "1.1.166";
63521
63521
  var description = "vitro software common ui ts";
63522
63522
  var author = "";
63523
63523
  var license = "MIT";
@@ -83762,9 +83762,11 @@ var Switch = function Switch(props) {
83762
83762
  }));
83763
83763
  };
83764
83764
 
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-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"};
83766
83766
 
83767
83767
  var CSS_CLASS_MOBILE = 'vitro-mobile';
83768
+ var TRANSLATE_X = 49;
83769
+ var TRANSLATE_Y = 37;
83768
83770
  var EditableItem = function EditableItem(props) {
83769
83771
  var _useState = React.useState(props.text),
83770
83772
  text = _useState[0],
@@ -83800,6 +83802,19 @@ var EditableItem = function EditableItem(props) {
83800
83802
  props.onToggleDropdown(state);
83801
83803
  }
83802
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
+ };
83803
83818
  return React__default.createElement(FlexBox, {
83804
83819
  onMouseOver: function onMouseOver() {
83805
83820
  return setIsHover(true);
@@ -83822,27 +83837,22 @@ var EditableItem = function EditableItem(props) {
83822
83837
  autoFocus: true
83823
83838
  }) : React__default.createElement(Label, {
83824
83839
  text: props.text || text
83825
- }), props.isMobileView ? React__default.createElement("div", {
83826
- className: styles$1L['vitro-button-container']
83827
- }, dropdownItemList && dropdownItemList.length ? React__default.createElement(DropdownButton, {
83828
- itemList: dropdownItemList,
83829
- onToggle: onToggleDropdownButton,
83830
- isShow: props.isDropdownActive,
83831
- className: styles$1L['vitro-dropdown-button'],
83832
- isFlip: true,
83833
- popperConfig: props.popperConfig
83834
- }) : null) : React__default.createElement("div", {
83840
+ }), React__default.createElement("div", {
83835
83841
  className: styles$1L['vitro-button-container']
83836
83842
  }, dropdownItemList && dropdownItemList.length ? React__default.createElement(DropdownButton, {
83837
83843
  itemList: dropdownItemList,
83838
83844
  onToggle: onToggleDropdownButton,
83839
83845
  isShow: props.isDropdownActive,
83840
- className: styles$1L['vitro-dropdown-button'] + (props.isActive || isHover ? CTRL.EMPTY : CTRL.SPACE + styles$1L['vitro-display-none'])
83841
- }) : 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, {
83842
83851
  className: (props.isActive || isHover) && dropdownItemList ? styles$1L['vitro-display-none'] : CTRL.EMPTY
83843
83852
  }, props.button)));
83844
83853
  };
83845
83854
 
83855
+ var MemoList = React__default.memo(List);
83846
83856
  var EditableList = function EditableList(props) {
83847
83857
  var _useState = React.useState(),
83848
83858
  editedItem = _useState[0],
@@ -83853,6 +83863,9 @@ var EditableList = function EditableList(props) {
83853
83863
  var _useState3 = React.useState(),
83854
83864
  activeDropdownItemId = _useState3[0],
83855
83865
  setActiveDropdownItemId = _useState3[1];
83866
+ var _useState4 = React.useState(0),
83867
+ scrollTop = _useState4[0],
83868
+ setScrollTop = _useState4[1];
83856
83869
  var changedFieldValueMap = React.useMemo(function () {
83857
83870
  return new Map();
83858
83871
  }, []);
@@ -83920,6 +83933,11 @@ var EditableList = function EditableList(props) {
83920
83933
  setActiveDropdownItemId(undefined);
83921
83934
  }
83922
83935
  };
83936
+ var onScrollY = function onScrollY(e, element) {
83937
+ if (element) {
83938
+ setScrollTop(element.scrollTop);
83939
+ }
83940
+ };
83923
83941
  return React__default.createElement(FlexBox, {
83924
83942
  className: styles$1L['vitro-editable-list'] + (props.className ? CTRL.SPACE + props.className : CTRL.EMPTY)
83925
83943
  }, React__default.createElement(FlexBox, {
@@ -83932,7 +83950,9 @@ var EditableList = function EditableList(props) {
83932
83950
  }, React__default.createElement(ImageButton, {
83933
83951
  onClick: onCreate,
83934
83952
  className: styles$1L['vitro-create-button']
83935
- }))), React__default.createElement(List, {
83953
+ }))), React__default.createElement(ScrollBar, {
83954
+ onScrollY: onScrollY
83955
+ }, React__default.createElement(MemoList, {
83936
83956
  itemList: props.itemList,
83937
83957
  itemTemplate: function itemTemplate(item) {
83938
83958
  return React__default.createElement(EditableItem, Object.assign({}, item, {
@@ -83953,7 +83973,8 @@ var EditableList = function EditableList(props) {
83953
83973
  getDropdownItemList: props.getDropdownItemList,
83954
83974
  isMobileView: props.isMobileView,
83955
83975
  icon: props.itemIcon,
83956
- popperConfig: props.popperConfig
83976
+ popperConfig: props.popperConfig,
83977
+ scrollTop: scrollTop
83957
83978
  }));
83958
83979
  },
83959
83980
  onClick: onClick
@@ -83968,7 +83989,7 @@ var EditableList = function EditableList(props) {
83968
83989
  isEditMode: props.isActiveNewItem === false ? false : true,
83969
83990
  isMobileView: props.isMobileView,
83970
83991
  icon: props.itemIcon
83971
- })));
83992
+ }))));
83972
83993
  };
83973
83994
 
83974
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"};