@vitrosoftware/common-ui-ts 1.1.115 → 1.1.117

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.
Files changed (43) hide show
  1. package/css/std/controls/button/button.css +2 -1
  2. package/css/std/controls/button-cancel/button-cancel.css +2 -1
  3. package/css/std/controls/command-menu/command-menu-button.css +4 -1
  4. package/css/std/controls/command-menu/command-menu-dropdown-button.css +23 -12
  5. package/css/std/controls/date-picker/date-picker.css +10 -2
  6. package/css/std/controls/pdf-viewer/pdf-viewer-index.css +1 -0
  7. package/css/std/controls/pdf-viewer/pdf-viewer.css +1 -0
  8. package/css/std/controls/tab-group/tab-group.css +18 -0
  9. package/css/std/controls/table-view/table-view-custom-date-edit.css +1 -5
  10. package/css/std/controls/table-view/table-view.css +13 -0
  11. package/css/std/controls/table-view/treegrid-cell.css +70 -0
  12. package/css/std/controls/table-view/treegrid-cfg-menu.css +208 -0
  13. package/css/std/controls/table-view/treegrid-context-menu.css +159 -0
  14. package/css/std/controls/table-view/treegrid-filter.css +265 -0
  15. package/css/std/controls/table-view/treegrid-gantt.css +66 -0
  16. package/css/std/controls/table-view/treegrid-group.css +59 -0
  17. package/css/std/controls/table-view/treegrid-header.css +30 -0
  18. package/css/std/controls/table-view/treegrid-message.css +41 -0
  19. package/css/std/controls/table-view/treegrid-progress.css +47 -0
  20. package/css/std/controls/table-view/treegrid-scroll.css +55 -0
  21. package/css/std/controls/table-view/treegrid-sort.css +25 -0
  22. package/css/std/controls/table-view/treegrid-tab.css +45 -0
  23. package/css/std/controls/table-view/treegrid-tip.css +23 -0
  24. package/css/std/controls/table-view/treegrid.css +0 -989
  25. package/css/std/controls/uploader/img/error.svg +6 -0
  26. package/css/std/controls/uploader/img/warning.svg +10 -0
  27. package/css/std/controls/uploader/uploader.css +75 -35
  28. package/dist/index.css +146 -53
  29. package/dist/index.js +156 -60
  30. package/dist/index.js.map +1 -1
  31. package/dist/src/constants/KeyCode.d.ts +1 -0
  32. package/dist/src/controls/ActionHandler/ConfirmDialog.d.ts +2 -1
  33. package/dist/src/controls/ButtonGroup/ButtonGroup.d.ts +1 -1
  34. package/dist/src/controls/CommandMenu/CommandMenuItemHeader.d.ts +1 -0
  35. package/dist/src/controls/Dialog/Dialog.d.ts +2 -1
  36. package/dist/src/controls/Dialog/DialogFooter.d.ts +2 -1
  37. package/dist/src/controls/TableView/TableViewConstants.d.ts +3 -0
  38. package/dist/src/controls/TableView/TableViewContext.d.ts +4 -0
  39. package/dist/src/controls/TableView/TreeGridTableViewContextImpl.d.ts +4 -0
  40. package/dist/src/controls/TelerikUploader/TelerikUploaderConstants.d.ts +1 -0
  41. package/package.json +1 -1
  42. package/src/controls/BimViewer/js/bim-viewer.js +2 -2
  43. package/src/controls/PdfViewer/js/pdf-viewer.js +2 -2
package/dist/index.js CHANGED
@@ -101,12 +101,9 @@ var app$1 = {
101
101
  count_few: "Осталось {{count}} файла",
102
102
  count_many: "Осталось {{count}} файлов"
103
103
  },
104
- success_one: "{{count}} файл загружен",
105
- success_few: "{{count}} файла загружено",
106
- success_many: "{{count}} файлов загружено",
107
- error_one: "{{count}} файл не загружен",
108
- error_few: "{{count}} файла не загружено",
109
- error_many: "{{count}} файлов не загружено",
104
+ success: "Файлы успешно загружены",
105
+ error: "Не удалось загрузить файл(ы)",
106
+ warning: "Загружено {{processedCount}} из {{count}} файл(ов)",
110
107
  upload: "Загрузить",
111
108
  cancel: "Отмена"
112
109
  },
@@ -21317,6 +21314,18 @@ var TreeGridTableViewContextImpl = /*#__PURE__*/function () {
21317
21314
  _proto.showPopupMenu = function showPopupMenu() {
21318
21315
  this.grid.ActionShowPopupMenu();
21319
21316
  };
21317
+ _proto.closeDialog = function closeDialog() {
21318
+ this.grid.CloseDialog();
21319
+ };
21320
+ _proto.hideTip = function hideTip() {
21321
+ this.grid.HideTip();
21322
+ };
21323
+ _proto.showMenu = function showMenu(row, col, menu, position, func) {
21324
+ this.grid.ShowMenu(row, col, menu, position, func);
21325
+ };
21326
+ _proto.showPopup = function showPopup(menu, func) {
21327
+ this.grid.ShowPopup(menu, func);
21328
+ };
21320
21329
  _createClass(TreeGridTableViewContextImpl, [{
21321
21330
  key: "columnList",
21322
21331
  get: function get() {
@@ -21582,6 +21591,10 @@ var MENU_NAME;
21582
21591
  MENU_NAME["EXPORT"] = "MenuExport";
21583
21592
  MENU_NAME["COLUMNS"] = "MenuColumns";
21584
21593
  })(MENU_NAME || (MENU_NAME = {}));
21594
+ var PART_TYPE;
21595
+ (function (PART_TYPE) {
21596
+ PART_TYPE["SIDE_BUTTON"] = "SideButton";
21597
+ })(PART_TYPE || (PART_TYPE = {}));
21585
21598
 
21586
21599
  var TableViewConstants = {
21587
21600
  __proto__: null,
@@ -21606,7 +21619,8 @@ var TableViewConstants = {
21606
21619
  get PARAM () { return PARAM; },
21607
21620
  get COL_ID () { return COL_ID; },
21608
21621
  get BUTTON () { return BUTTON; },
21609
- get MENU_NAME () { return MENU_NAME; }
21622
+ get MENU_NAME () { return MENU_NAME; },
21623
+ get PART_TYPE () { return PART_TYPE; }
21610
21624
  };
21611
21625
 
21612
21626
  var styles$5 = {"vitro-table-view":"_table-view_vitro-table-view_1tTs32D"};
@@ -21879,6 +21893,7 @@ var LOCALE;
21879
21893
  LOCALE["TITLE"] = "app.common.uploader.title";
21880
21894
  LOCALE["SUCCESS"] = "app.common.uploader.action.success";
21881
21895
  LOCALE["ERROR"] = "app.common.uploader.action.error";
21896
+ LOCALE["WARNING"] = "app.common.uploader.action.warning";
21882
21897
  LOCALE["PROGRESS_PERCENT"] = "app.common.uploader.action.progress.percent";
21883
21898
  LOCALE["PROGRESS_COUNT"] = "app.common.uploader.action.progress.count";
21884
21899
  LOCALE["FILE_SUCCESS"] = "app.common.uploader.file.action.success";
@@ -21888,7 +21903,6 @@ var LOCALE;
21888
21903
  })(LOCALE || (LOCALE = {}));
21889
21904
 
21890
21905
  var $$1 = window.$;
21891
- var COLOR_GREEN = '#198754';
21892
21906
  var KENDO_UPLOAD = 'kendoUpload';
21893
21907
  var AUTHORIZATION_TOKEN_HEADER = 'AuthorizationToken';
21894
21908
  var TelerikUploaderContextImpl = /*#__PURE__*/function () {
@@ -21970,6 +21984,9 @@ var TelerikUploaderContextImpl = /*#__PURE__*/function () {
21970
21984
  this.subtitle.empty();
21971
21985
  this.title.empty();
21972
21986
  this.progressInfoContainer.removeClass('vitro-upload-complete');
21987
+ this.progressInfoContainer.removeClass('vitro-success');
21988
+ this.progressInfoContainer.removeClass('vitro-warning');
21989
+ this.progressInfoContainer.removeClass('vitro-error');
21973
21990
  $$1(this.container).removeClass('vitro-upload-active');
21974
21991
  this.progressInfo = {
21975
21992
  count: 0,
@@ -22029,15 +22046,22 @@ var TelerikUploaderContextImpl = /*#__PURE__*/function () {
22029
22046
  };
22030
22047
  _proto.complete = function complete(e) {
22031
22048
  var _this2 = this;
22032
- this.progressInfoContainer.addClass('vitro-upload-complete');
22033
22049
  this.subtitle.empty();
22034
- this.title.text(this.localeService.create(LOCALE.SUCCESS, {
22035
- count: this.successCount
22036
- }));
22050
+ this.progressInfoContainer.addClass('vitro-upload-complete');
22037
22051
  if (this.errorCount) {
22038
- this.subtitle.text(this.localeService.create(LOCALE.ERROR, {
22039
- count: this.errorCount
22040
- }));
22052
+ if (this.successCount) {
22053
+ this.progressInfoContainer.addClass('vitro-warning');
22054
+ this.title.text(this.localeService.create(LOCALE.WARNING, {
22055
+ processedCount: this.successCount,
22056
+ count: this.fileList.length
22057
+ }));
22058
+ } else {
22059
+ this.progressInfoContainer.addClass('vitro-error');
22060
+ this.title.text(this.localeService.create(LOCALE.ERROR));
22061
+ }
22062
+ } else {
22063
+ this.progressInfoContainer.addClass('vitro-success');
22064
+ this.title.text(this.localeService.create(LOCALE.SUCCESS));
22041
22065
  }
22042
22066
  this.setProgressBar(100);
22043
22067
  if (this.settings.isAutoReset && !this.errorCount) {
@@ -22114,11 +22138,6 @@ var TelerikUploaderContextImpl = /*#__PURE__*/function () {
22114
22138
  _proto.setProgressBar = function setProgressBar(percent) {
22115
22139
  if (this.progressBar) {
22116
22140
  this.progressBar.style.width = percent + CTRL.PERCENT;
22117
- if (percent == 100) {
22118
- this.progressBar.style.background = COLOR_GREEN;
22119
- } else {
22120
- this.progressBar.style.background = CTRL.EMPTY;
22121
- }
22122
22141
  }
22123
22142
  };
22124
22143
  _proto.setFileProgress = function setFileProgress(id, percent) {
@@ -60381,11 +60400,12 @@ var ButtonCancel = function ButtonCancel(props) {
60381
60400
 
60382
60401
  var styles$f = {"vitro-button-group":"_button-group_vitro-button-group_3TLqxjf"};
60383
60402
 
60384
- var ButtonGroup = function ButtonGroup(props) {
60403
+ var ButtonGroup = React.forwardRef(function (props, ref) {
60385
60404
  return React__default.createElement("div", {
60405
+ ref: ref,
60386
60406
  className: styles$f['vitro-button-group'] + (props.className ? CTRL.SPACE + props.className : CTRL.EMPTY)
60387
60407
  }, props.children);
60388
- };
60408
+ });
60389
60409
 
60390
60410
  var styles$g = {"vitro-expand-collapse-button":"_expand-collapse-button_vitro-expand-collapse-button_2O97Y_w","vitro-expanded":"_expand-collapse-button_vitro-expanded_bPbXQ6M","vitro-collapsed":"_expand-collapse-button_vitro-collapsed_1NqpRKU"};
60391
60411
 
@@ -60443,7 +60463,8 @@ var DialogFooter = function DialogFooter(props) {
60443
60463
  return React__default.createElement("div", {
60444
60464
  className: styles$h['vitro-dialog-footer'] + (props.className ? CTRL.SPACE + props.className : CTRL.EMPTY)
60445
60465
  }, React__default.createElement(ButtonGroup, {
60446
- className: styles$h['vitro-button-group']
60466
+ className: styles$h['vitro-button-group'],
60467
+ ref: props.buttonGroupRef
60447
60468
  }, props.isShowDetailButton && props.onClickDetailButton && React__default.createElement(DialogDetailExpandButton, {
60448
60469
  onClick: props.onClickDetailButton
60449
60470
  }), props.isDismissible && React__default.createElement(ButtonCancel, {
@@ -60469,6 +60490,7 @@ KEY_CODE.ENTER = 13;
60469
60490
  KEY_CODE.ESC = 27;
60470
60491
  KEY_CODE.ARROW_RIGHT = 39;
60471
60492
  KEY_CODE.ARROW_LEFT = 37;
60493
+ KEY_CODE.TAB = 9;
60472
60494
 
60473
60495
  var styles$i = {"vitro-dialog":"_dialog_vitro-dialog_2NzcRZg","vitro-dialog-button-close":"_dialog_vitro-dialog-button-close_2TF5iry","vitro-hidden-content":"_dialog_vitro-hidden-content_niGbpGx","vitro-hidden":"_dialog_vitro-hidden_1kSAyNC","vitro-display-none":"_dialog_vitro-display-none_T-eWeyA"};
60474
60496
 
@@ -60483,14 +60505,15 @@ var Dialog = function Dialog(props) {
60483
60505
  var _useState3 = React.useState(false),
60484
60506
  isMobileView = _useState3[0],
60485
60507
  setIsMobileView = _useState3[1];
60508
+ var dialogRef = React.useRef(null);
60509
+ var buttonGroupRef = React.useRef(null);
60486
60510
  var className = styles$i['vitro-dialog'] + (props.isShow === false ? CTRL.SPACE + styles$i['vitro-display-none'] : CTRL.EMPTY);
60487
60511
  var showFooter = !props.isHideFooter && (((_props$buttonList = props.buttonList) === null || _props$buttonList === void 0 ? void 0 : _props$buttonList.length) || props.onClose);
60488
60512
  React.useEffect(function () {
60513
+ if (buttonGroupRef.current && buttonGroupRef.current.lastChild) {
60514
+ buttonGroupRef.current.lastChild.focus();
60515
+ }
60489
60516
  updateIsMobileView();
60490
- window.document.addEventListener(exports.EVENT.KEYDOWN, escFunction, false);
60491
- return function () {
60492
- window.document.removeEventListener(exports.EVENT.KEYDOWN, escFunction, false);
60493
- };
60494
60517
  }, []);
60495
60518
  React.useEffect(function () {
60496
60519
  if (props.content) {
@@ -60509,10 +60532,47 @@ var Dialog = function Dialog(props) {
60509
60532
  onClose();
60510
60533
  }
60511
60534
  };
60512
- var escFunction = function escFunction(e) {
60535
+ var onKeyDown = function onKeyDown(e) {
60513
60536
  if (e.keyCode === KEY_CODE.ESC) {
60514
60537
  onClose();
60515
60538
  }
60539
+ if (e.keyCode === KEY_CODE.TAB || e.keyCode === KEY_CODE.ARROW_RIGHT || e.keyCode === KEY_CODE.ARROW_LEFT) {
60540
+ changeFocus(e);
60541
+ }
60542
+ if (props.onKeyDown) {
60543
+ props.onKeyDown(e);
60544
+ }
60545
+ };
60546
+ var changeFocus = function changeFocus(e) {
60547
+ if (buttonGroupRef.current) {
60548
+ e.preventDefault();
60549
+ var buttonList = Array.from(buttonGroupRef.current.children);
60550
+ var activeButton = buttonList.find(function (button) {
60551
+ return button === document.activeElement;
60552
+ });
60553
+ if (activeButton) {
60554
+ if (e.keyCode === KEY_CODE.TAB) {
60555
+ activeButton.nextSibling ? focusNext(activeButton) : buttonList[0].focus();
60556
+ } else {
60557
+ if (e.keyCode === KEY_CODE.ARROW_RIGHT) {
60558
+ focusNext(activeButton);
60559
+ }
60560
+ if (e.keyCode === KEY_CODE.ARROW_LEFT) {
60561
+ focusPrev(activeButton);
60562
+ }
60563
+ }
60564
+ }
60565
+ }
60566
+ };
60567
+ var focusNext = function focusNext(activeButton) {
60568
+ if (activeButton.nextSibling) {
60569
+ activeButton.nextSibling.focus();
60570
+ }
60571
+ };
60572
+ var focusPrev = function focusPrev(activeButton) {
60573
+ if (activeButton.previousSibling) {
60574
+ activeButton.previousSibling.focus();
60575
+ }
60516
60576
  };
60517
60577
  var updateIsMobileView = function updateIsMobileView() {
60518
60578
  setIsMobileView(window.innerWidth < exports.MOBILE_VIEW.WIDTH);
@@ -60522,7 +60582,10 @@ var Dialog = function Dialog(props) {
60522
60582
  };
60523
60583
  return React__default.createElement("div", {
60524
60584
  className: className,
60525
- onMouseDown: onOutsideClick
60585
+ onMouseDown: onOutsideClick,
60586
+ onKeyDown: onKeyDown,
60587
+ ref: dialogRef,
60588
+ tabIndex: 1
60526
60589
  }, React__default.createElement(DialogComponent, {
60527
60590
  width: props.width,
60528
60591
  height: props.height,
@@ -60548,7 +60611,8 @@ var Dialog = function Dialog(props) {
60548
60611
  isShowDetailButton: props.hiddenContent && !isMobileView ? true : false,
60549
60612
  onClickDetailButton: onClickDetailButton,
60550
60613
  isDismissible: props.isDismissible,
60551
- className: props.footerClassName
60614
+ className: props.footerClassName,
60615
+ buttonGroupRef: buttonGroupRef
60552
60616
  }) : null));
60553
60617
  };
60554
60618
 
@@ -60591,6 +60655,7 @@ var ConfirmDialog = function ConfirmDialog(props) {
60591
60655
  onClose: props.onCancel,
60592
60656
  buttonList: buttonList,
60593
60657
  labelClose: props.labelNo,
60658
+ onKeyDown: props.onKeyDown,
60594
60659
  isDismissible: true
60595
60660
  });
60596
60661
  };
@@ -60824,10 +60889,6 @@ var ActionHandler = function ActionHandler(props) {
60824
60889
  }
60825
60890
  setIsShow(true);
60826
60891
  }
60827
- window.addEventListener(exports.EVENT.KEYDOWN, onEscClick, false);
60828
- return function () {
60829
- window.removeEventListener(exports.EVENT.KEYDOWN, onEscClick, false);
60830
- };
60831
60892
  }, []);
60832
60893
  var init = function init() {
60833
60894
  if (props.onBeforeAction) {
@@ -60967,9 +61028,13 @@ var ActionHandler = function ActionHandler(props) {
60967
61028
  return Promise.reject(e);
60968
61029
  }
60969
61030
  };
60970
- var onEscClick = function onEscClick(e) {
60971
- if (e.keyCode === KEY_CODE.ESC && currentAction === actionMap.before) {
60972
- onClose();
61031
+ var onKeyDown = function onKeyDown(e) {
61032
+ if (currentAction === actionMap.before) {
61033
+ if (e.keyCode === KEY_CODE.ESC) {
61034
+ onClose();
61035
+ } else {
61036
+ e.stopPropagation();
61037
+ }
60973
61038
  }
60974
61039
  };
60975
61040
  var onClose = function onClose(error, successResult, failResult) {
@@ -61004,7 +61069,8 @@ var ActionHandler = function ActionHandler(props) {
61004
61069
  labelNo: props.labelNo,
61005
61070
  labelYes: props.labelYes,
61006
61071
  onCancel: onClose,
61007
- onConfirm: onStart
61072
+ onConfirm: onStart,
61073
+ onKeyDown: onKeyDown
61008
61074
  }) : React__default.createElement(ResultDialog, {
61009
61075
  actionName: actionName,
61010
61076
  itemList: data.itemList,
@@ -61173,8 +61239,15 @@ var TabGroupHeader = function TabGroupHeader(props) {
61173
61239
  var _useState = React.useState(),
61174
61240
  activeItem = _useState[0],
61175
61241
  setActiveItem = _useState[1];
61176
- var overflowTabList = [];
61242
+ var overflowTabList = window.innerWidth < exports.MOBILE_VIEW.WIDTH ? props.itemList.filter(function (item) {
61243
+ return item.index !== props.currentTab;
61244
+ }) : [];
61177
61245
  var tabMinWidth = 120;
61246
+ React.useEffect(function () {
61247
+ if (window.innerWidth < exports.MOBILE_VIEW.WIDTH) {
61248
+ setActiveItem(props.itemList[props.currentTab]);
61249
+ }
61250
+ }, [props.itemList]);
61178
61251
  var onClick = function onClick(index) {
61179
61252
  if (!props.isDisabled) {
61180
61253
  var overflowItem = overflowTabList.find(function (item) {
@@ -61193,7 +61266,7 @@ var TabGroupHeader = function TabGroupHeader(props) {
61193
61266
  var width = props.width - count * 16;
61194
61267
  return width >= tabMinWidth ? width : tabMinWidth;
61195
61268
  };
61196
- return React__default.createElement(Nav$2, null, props.width > 0 && props.itemList && props.itemList.map(function (item, index) {
61269
+ return React__default.createElement(Nav$2, null, window.innerWidth > exports.MOBILE_VIEW.WIDTH && props.width > 0 && props.itemList && props.itemList.map(function (item, index) {
61197
61270
  if ((activeItem ? index + 2 : index + 1) * tabMinWidth < getWidth() || !props.wrap) {
61198
61271
  if (activeItem && activeItem.index === index) {
61199
61272
  setActiveItem(null);
@@ -61952,7 +62025,7 @@ var Viewer = function Viewer(props) {
61952
62025
  };
61953
62026
 
61954
62027
  var name = "@vitrosoftware/common-ui-ts";
61955
- var version$1 = "1.1.115";
62028
+ var version$1 = "1.1.117";
61956
62029
  var description = "vitro software common ui ts";
61957
62030
  var author = "";
61958
62031
  var license = "MIT";
@@ -63323,7 +63396,7 @@ var LookupPicker = React.forwardRef(function (props, ref) {
63323
63396
  }
63324
63397
  }, [selectedValueList]);
63325
63398
  React.useEffect(function () {
63326
- setState(props.errorMessage ? styles$M['vitro-error'] : CTRL.EMPTY);
63399
+ setState(props.errorMessage && !valueListVisible ? styles$M['vitro-error'] : valueListVisible ? state : CTRL.EMPTY);
63327
63400
  }, [props.errorMessage]);
63328
63401
  var updateFilteredValueList = function updateFilteredValueList(valueList) {
63329
63402
  var availableValueList = inputValue ? filteredValueList : valueList;
@@ -63389,6 +63462,8 @@ var LookupPicker = React.forwardRef(function (props, ref) {
63389
63462
  };
63390
63463
  var onOptionValueDelete = function onOptionValueDelete(id) {
63391
63464
  if (!props.isDisabled) {
63465
+ var _inputRef$current;
63466
+ (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
63392
63467
  var newSelectedValueList = id ? selectedValueList.filter(function (x) {
63393
63468
  return x.id !== id;
63394
63469
  }) : [];
@@ -63399,21 +63474,19 @@ var LookupPicker = React.forwardRef(function (props, ref) {
63399
63474
  }
63400
63475
  };
63401
63476
  var onFocusOut = function onFocusOut(e) {
63477
+ var _document$activeEleme;
63402
63478
  var target = e.currentTarget;
63403
- setTimeout(function () {
63404
- var _document$activeEleme;
63405
- var isValueListItem = Boolean(props.isMultiSelect && ((_document$activeEleme = document.activeElement) === null || _document$activeEleme === void 0 ? void 0 : _document$activeEleme.classList.contains(valueListStyles['vitro-item'])));
63406
- if (!target.contains(document.activeElement) && !isValueListItem) {
63407
- setValueListVisible(false);
63408
- setInputValue(CTRL.EMPTY);
63409
- if (props.onBlur && !props.isDisabled) {
63410
- props.onBlur(props.isMultiSelect ? selectedValueList : selectedValueList.find(function (x) {
63411
- return x;
63412
- }), props.name);
63413
- }
63414
- setState(props.errorMessage ? styles$M['vitro-error'] : CTRL.EMPTY);
63479
+ var isValueListItem = Boolean(props.isMultiSelect && ((_document$activeEleme = document.activeElement) === null || _document$activeEleme === void 0 ? void 0 : _document$activeEleme.classList.contains(valueListStyles['vitro-item'])));
63480
+ if (!target.contains(document.activeElement) && !isValueListItem) {
63481
+ setValueListVisible(false);
63482
+ setInputValue(CTRL.EMPTY);
63483
+ if (props.onBlur && !props.isDisabled) {
63484
+ props.onBlur(props.isMultiSelect ? selectedValueList : selectedValueList.find(function (x) {
63485
+ return x;
63486
+ }), props.name);
63415
63487
  }
63416
- });
63488
+ setState(props.errorMessage ? styles$M['vitro-error'] : CTRL.EMPTY);
63489
+ }
63417
63490
  };
63418
63491
  var onFocus = function onFocus(e) {
63419
63492
  setState(styles$M['vitro-focus']);
@@ -63539,7 +63612,7 @@ var CommandMenuLookupPicker = function CommandMenuLookupPicker(props) {
63539
63612
  })));
63540
63613
  };
63541
63614
 
63542
- var styles$Q = {"vitro-command-menu-dropdown-button":"_command-menu-dropdown-button_vitro-command-menu-dropdown-button_2ImIuc3","vitro-dropdown-button-container":"_command-menu-dropdown-button_vitro-dropdown-button-container_29qd-_O","vitro-image":"_command-menu-dropdown-button_vitro-image_2VNGo-H","vitro-button-collapse-bottom":"_command-menu-dropdown-button_vitro-button-collapse-bottom_1OS_X_a"};
63615
+ var styles$Q = {"vitro-command-menu-dropdown-button":"_command-menu-dropdown-button_vitro-command-menu-dropdown-button_2ImIuc3","vitro-dropdown-button-container":"_command-menu-dropdown-button_vitro-dropdown-button-container_29qd-_O","vitro-right":"_command-menu-dropdown-button_vitro-right_uTzkzdJ","vitro-image":"_command-menu-dropdown-button_vitro-image_2VNGo-H","vitro-button-collapse-bottom":"_command-menu-dropdown-button_vitro-button-collapse-bottom_1OS_X_a","vitro-scrollbar":"_command-menu-dropdown-button_vitro-scrollbar_1J6dT6q"};
63543
63616
 
63544
63617
  var CommandMenuSubItem = function CommandMenuSubItem(props) {
63545
63618
  var onClick = function onClick(e) {
@@ -63569,7 +63642,23 @@ var CommandMenuItemHeader = function CommandMenuItemHeader(props) {
63569
63642
  var _useState = React.useState(false),
63570
63643
  isHover = _useState[0],
63571
63644
  setIsHover = _useState[1];
63645
+ var ref = React.useRef(null);
63646
+ React.useEffect(function () {
63647
+ updateIsRight();
63648
+ }, [ref.current]);
63649
+ var updateIsRight = function updateIsRight() {
63650
+ var isRight = false;
63651
+ if (ref.current) {
63652
+ var windowWidth = window.innerWidth;
63653
+ var left = ref.current.getBoundingClientRect().left;
63654
+ if (left + 241 > windowWidth) {
63655
+ isRight = true;
63656
+ }
63657
+ }
63658
+ props.setIsRight(isRight);
63659
+ };
63572
63660
  return React__default.createElement("div", {
63661
+ ref: ref,
63573
63662
  onMouseEnter: function onMouseEnter() {
63574
63663
  return setIsHover(true);
63575
63664
  },
@@ -63590,26 +63679,33 @@ var CommandMenuItemHeader = function CommandMenuItemHeader(props) {
63590
63679
 
63591
63680
  var CommandMenuDropdownButton = function CommandMenuDropdownButton(props) {
63592
63681
  var _props$itemList;
63682
+ var _useState = React.useState(false),
63683
+ isRight = _useState[0],
63684
+ setIsRight = _useState[1];
63593
63685
  var isShowImage = (_props$itemList = props.itemList) !== null && _props$itemList !== void 0 && _props$itemList.find(function (item) {
63594
63686
  return item.imageUrl;
63595
63687
  }) ? true : false;
63596
63688
  return React__default.createElement(reactstrap.UncontrolledDropdown, {
63597
63689
  nav: true,
63598
63690
  inNavbar: true,
63599
- className: styles$Q['vitro-dropdown-button-container']
63691
+ className: styles$Q['vitro-dropdown-button-container'] + (isRight ? CTRL.SPACE + styles$Q['vitro-right'] : CTRL.EMPTY)
63600
63692
  }, React__default.createElement(reactstrap.DropdownToggle, {
63601
63693
  nav: true,
63602
63694
  caret: true
63603
63695
  }, React__default.createElement(CommandMenuItemHeader, Object.assign({}, props, {
63604
- className: props.className
63605
- }))), React__default.createElement(reactstrap.DropdownMenu, null, props.itemList && props.itemList.map(function (i) {
63696
+ className: props.className,
63697
+ setIsRight: setIsRight
63698
+ }))), React__default.createElement(reactstrap.DropdownMenu, null, React__default.createElement(ScrollBar, {
63699
+ className: styles$Q['vitro-scrollbar'],
63700
+ isHideScrollX: true
63701
+ }, props.itemList && props.itemList.map(function (i) {
63606
63702
  return React__default.createElement(CommandMenuSubItem, Object.assign({
63607
63703
  toggle: props.toggle,
63608
63704
  key: i.text
63609
63705
  }, i, {
63610
63706
  isShowImage: isShowImage
63611
63707
  }));
63612
- }), props.children));
63708
+ }), props.children)));
63613
63709
  };
63614
63710
 
63615
63711
  var styles$R = {"vitro-item":"_sidebar-item_vitro-item_1BR_7F0","vitro-image":"_sidebar-item_vitro-image_2A82YI0","vitro-item-text":"_sidebar-item_vitro-item-text_1kK_aIZ","vitro-active":"_sidebar-item_vitro-active_7p5iOhY","vitro-hover":"_sidebar-item_vitro-hover_1mECzme","vitro-group-item":"_sidebar-item_vitro-group-item_ZADCctV","vitro-item-list":"_sidebar-item_vitro-item-list_17dWov1","vitro-expanded":"_sidebar-item_vitro-expanded_3qb1vOx","vitro-collapsed":"_sidebar-item_vitro-collapsed_2EhVmXL","vitro-display-none":"_sidebar-item_vitro-display-none_2WwKi5v","vitro-scrollbar":"_sidebar-item_vitro-scrollbar___xylIx","vitro-button-close":"_sidebar-item_vitro-button-close_2Kdf-ob"};