@vitrosoftware/common-ui-ts 1.1.227 → 1.1.229

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 (72) hide show
  1. package/css/std/controls/alert/alert.css +10 -47
  2. package/css/std/controls/bim-viewer/bim-viewer-index.css +4 -0
  3. package/css/std/controls/bim-viewer/style.css +4 -0
  4. package/css/std/controls/dialog/dialog-content.css +3 -0
  5. package/css/std/controls/dialog/dialog-footer.css +2 -0
  6. package/css/std/controls/dxf-viewer/common.css +4 -0
  7. package/css/std/controls/dxf-viewer/dxf-viewer-index.css +4 -0
  8. package/css/std/controls/field-iterator/field-iterator.css +6 -0
  9. package/css/std/controls/file/file.css +5 -4
  10. package/css/std/controls/filter/filter.css +1 -1
  11. package/css/std/controls/issue-tile/issue-tile-footer.css +1 -1
  12. package/css/std/controls/issue-tile/issue-tile-header.css +1 -1
  13. package/css/std/controls/issue-tile/issue-tile.css +1 -1
  14. package/css/std/controls/lookup-picker/lookup-picker-selected-item.css +0 -1
  15. package/css/std/controls/lookup-picker/lookup-picker-value-list.css +0 -1
  16. package/css/std/controls/lookup-picker/lookup-picker.css +38 -21
  17. package/css/std/controls/pdf-viewer/custom.css +4 -0
  18. package/css/std/controls/pdf-viewer/img/compare-dlg-separator.svg +3 -1
  19. package/css/std/controls/pdf-viewer/img/compare-dlg-title.svg +12 -0
  20. package/css/std/controls/pdf-viewer/pdf-viewer-index.css +217 -0
  21. package/css/std/controls/pdf-viewer/pdf-viewer.css +213 -0
  22. package/css/std/controls/select/select.css +26 -2
  23. package/css/std/controls/tab-group/tab-group.css +6 -3
  24. package/css/std/controls/table-view/table-view-custom-lookup-edit.css +1 -1
  25. package/css/std/controls/table-view/treegrid-cell.css +5 -0
  26. package/css/std/controls/table-view/treegrid-context-menu.css +22 -3
  27. package/css/std/controls/video-viewer/video-viewer.css +1 -1
  28. package/dist/index.css +101 -85
  29. package/dist/index.js +478 -344
  30. package/dist/index.js.map +1 -1
  31. package/dist/src/constants/Factory.d.ts +1 -0
  32. package/dist/src/controls/Alert/Alert.d.ts +0 -4
  33. package/dist/src/controls/BimViewer/BimViewer.d.ts +1 -0
  34. package/dist/src/controls/BimViewer/Viewer.d.ts +1 -0
  35. package/dist/src/controls/Dialog/Dialog.d.ts +2 -0
  36. package/dist/src/controls/Dialog/DialogContent.d.ts +1 -0
  37. package/dist/src/controls/DxfViewer/DxfViewer.d.ts +1 -0
  38. package/dist/src/controls/DxfViewer/Viewer.d.ts +1 -0
  39. package/dist/src/controls/IssueTile/IssueTile.d.ts +7 -5
  40. package/dist/src/controls/LookupPicker/LookupPicker.d.ts +2 -0
  41. package/dist/src/controls/LookupPicker/RightButtonGroup.d.ts +2 -2
  42. package/dist/src/controls/LookupPicker/ValueList.d.ts +2 -0
  43. package/dist/src/controls/MicroFrontend/MicroFrontend.d.ts +1 -2
  44. package/dist/src/controls/PdfViewer/services/PdfViewerService.d.ts +8 -0
  45. package/dist/src/controls/ScrollBar/ScrollBar.d.ts +4 -3
  46. package/dist/src/controls/Search/Search.d.ts +3 -2
  47. package/dist/src/controls/TabGroup/Tab.d.ts +3 -3
  48. package/dist/src/controls/TabGroup/TabGroup.d.ts +0 -1
  49. package/dist/src/controls/TabGroup/TabGroupComponent.d.ts +0 -1
  50. package/dist/src/controls/TabGroup/models/Tab.d.ts +2 -1
  51. package/dist/src/controls/TableView/TableView.d.ts +2 -0
  52. package/dist/src/controls/TableView/TableViewConstants.d.ts +8 -2
  53. package/dist/src/controls/TableView/models/TableViewMenuItem.d.ts +2 -0
  54. package/dist/src/controls/TableView/services/TableViewService.d.ts +5 -0
  55. package/dist/src/controls/TableView/services/impl/TableViewServiceImpl.d.ts +7 -1
  56. package/dist/src/controls/View/View.d.ts +1 -1
  57. package/dist/src/controls/ViewPart/ViewPart.d.ts +2 -1
  58. package/dist/src/models/Item.d.ts +0 -1
  59. package/dist/src/models/ItemCopyRequest.d.ts +5 -1
  60. package/dist/src/models/ItemId.d.ts +2 -0
  61. package/dist/src/services/FileService.d.ts +8 -0
  62. package/dist/src/services/ItemSelectDialogService.d.ts +1 -1
  63. package/dist/src/services.d.ts +3 -0
  64. package/lib/dxf-viewer/OrbitControls.js +6 -2
  65. package/lib/dxf-viewer/parser/DxfArrayScanner.js +27 -1
  66. package/lib/dxf-viewer/parser/DxfParser.js +7 -4
  67. package/lib/fflate/fflate.module.js +2672 -0
  68. package/package.json +1 -1
  69. package/src/controls/BimViewer/js/bim-viewer.js +20 -32
  70. package/src/controls/DxfViewer/js/dxf-viewer.js +170 -60
  71. package/src/controls/PdfViewer/js/pdf-viewer.js +993 -56
  72. package/css/std/controls/file/img/file-button-context.svg +0 -6
package/dist/index.js CHANGED
@@ -516,10 +516,13 @@ var styles$1 = {"vitro-scrollbar-content":"_scrollbar_vitro-scrollbar-content_3H
516
516
 
517
517
  var CSS_CLASS_SCROLL_Y = 'ps-scroll-y';
518
518
  var w = window;
519
- var ScrollBar = function ScrollBar(props) {
519
+ var ScrollBar = React.forwardRef(function (props, outerRef) {
520
520
  var ref = React.useRef(null);
521
521
  var scrollElementRef = React.useRef(null);
522
522
  var observerRef = React.useRef();
523
+ React.useImperativeHandle(outerRef, function () {
524
+ return ref.current;
525
+ }, []);
523
526
  React.useEffect(function () {
524
527
  return function () {
525
528
  if (observerRef.current) {
@@ -579,7 +582,7 @@ var ScrollBar = function ScrollBar(props) {
579
582
  });
580
583
  }
581
584
  if (props.onInit) {
582
- props.onInit(ref.current);
585
+ props.onInit(ref.current, scrollElement);
583
586
  }
584
587
  if (props.isFocusOnScroll && ref.current) {
585
588
  ref.current.addEventListener(CSS_CLASS_SCROLL_Y, function () {
@@ -591,7 +594,9 @@ var ScrollBar = function ScrollBar(props) {
591
594
  }
592
595
  };
593
596
  var onWheel = function onWheel(e) {
594
- e.stopPropagation();
597
+ if (props.isPreventParentScroll) {
598
+ e.stopPropagation();
599
+ }
595
600
  };
596
601
  var onScrollY = function onScrollY(e) {
597
602
  if (ref.current && props.onScrollY) {
@@ -601,12 +606,12 @@ var ScrollBar = function ScrollBar(props) {
601
606
  return React__default.createElement("div", {
602
607
  ref: ref,
603
608
  className: props.className || CTRL.EMPTY
604
- }, React__default.createElement("div", {
609
+ }, React__default.createElement("div", Object.assign({}, props, {
605
610
  ref: props.contentRef,
606
611
  onWheel: onWheel,
607
612
  className: styles$1['vitro-scrollbar-content'] + (props.contentClassName ? CTRL.SPACE + props.contentClassName : CTRL.EMPTY)
608
- }, props.children));
609
- };
613
+ }), props.children));
614
+ });
610
615
 
611
616
  (function (EVENT) {
612
617
  EVENT["MOUSEDOWN"] = "mousedown";
@@ -21128,6 +21133,7 @@ var CFG_ATTRIBUTE;
21128
21133
  CFG_ATTRIBUTE["SHOW_V_SCROLL"] = "ShowVScroll";
21129
21134
  CFG_ATTRIBUTE["MID_WIDTH"] = "MidWidth";
21130
21135
  CFG_ATTRIBUTE["RIGHT_WIDTH"] = "RightWidth";
21136
+ CFG_ATTRIBUTE["SCROLL_TOP"] = "ScrollTop";
21131
21137
  })(CFG_ATTRIBUTE || (CFG_ATTRIBUTE = {}));
21132
21138
  var URL;
21133
21139
  (function (URL) {
@@ -21199,6 +21205,11 @@ var ATTRIBUTE$1;
21199
21205
  ATTRIBUTE["ADDED"] = "Added";
21200
21206
  ATTRIBUTE["FORMULA"] = "Formula";
21201
21207
  ATTRIBUTE["FORMAT"] = "Format";
21208
+ ATTRIBUTE["SPAN"] = "Span";
21209
+ ATTRIBUTE["LANG"] = "Lang";
21210
+ ATTRIBUTE["GMT"] = "GMT";
21211
+ ATTRIBUTE["ACTIONS"] = "Actions";
21212
+ ATTRIBUTE["MENU"] = "Menu";
21202
21213
  })(ATTRIBUTE$1 || (ATTRIBUTE$1 = {}));
21203
21214
  var DRAG_ITEM_TYPE;
21204
21215
  (function (DRAG_ITEM_TYPE) {
@@ -21413,6 +21424,7 @@ var TableViewServiceImpl = /*#__PURE__*/function () {
21413
21424
  this.gridChangesFormat = 'JSON';
21414
21425
  this.searchCriterionMap = new Map();
21415
21426
  this.visibleColumnList = [];
21427
+ this.disabledActionList = [];
21416
21428
  this.grid = grid;
21417
21429
  this.id = grid.id;
21418
21430
  this.grid.Source.Upload.Format = this.gridChangesFormat;
@@ -21425,6 +21437,7 @@ var TableViewServiceImpl = /*#__PURE__*/function () {
21425
21437
  } else {
21426
21438
  this.clearSearchCriterionList(searchId);
21427
21439
  }
21440
+ this.grid.searchCriterionList = Array.from(this.searchCriterionMap.values()).flat();
21428
21441
  };
21429
21442
  _proto.setCfgAttribute = function setCfgAttribute(attr, value) {
21430
21443
  var attrList = attr.split(CTRL.DOT);
@@ -21810,7 +21823,7 @@ var TableViewServiceImpl = /*#__PURE__*/function () {
21810
21823
  var filterContentTypeListJson = JSON.stringify(this.filterContentTypeList);
21811
21824
  newData = this.setXmlPart(newData, "FilterContentTypeList='" + filterContentTypeListJson + "'", XML_TAG.PAGE_SETTINGS);
21812
21825
  }
21813
- newData = this.setSearchCriterionLisXml(newData);
21826
+ newData = this.setSearchCriterionListXml(newData);
21814
21827
  newData = this.setVisibleColumnListXml(newData);
21815
21828
  return newData;
21816
21829
  };
@@ -21831,7 +21844,7 @@ var TableViewServiceImpl = /*#__PURE__*/function () {
21831
21844
  }
21832
21845
  return xmlString;
21833
21846
  };
21834
- _proto.setSearchCriterionLisXml = function setSearchCriterionLisXml(data) {
21847
+ _proto.setSearchCriterionListXml = function setSearchCriterionListXml(data) {
21835
21848
  var searchCriterionList = this.getSearchCriterionList();
21836
21849
  if (searchCriterionList && searchCriterionList.length) {
21837
21850
  var searchCriterionListJson = JSON.stringify(searchCriterionList);
@@ -21863,6 +21876,15 @@ var TableViewServiceImpl = /*#__PURE__*/function () {
21863
21876
  }
21864
21877
  }
21865
21878
  };
21879
+ _proto.getNextCol = function getNextCol(col) {
21880
+ return this.grid.GetNextCol(col);
21881
+ };
21882
+ _proto.getLastVisible = function getLastVisible() {
21883
+ return this.grid.GetLastVisible();
21884
+ };
21885
+ _proto.getBodyScrollHeight = function getBodyScrollHeight() {
21886
+ return this.grid.GetBodyScrollHeight();
21887
+ };
21866
21888
  _createClass(TableViewServiceImpl, [{
21867
21889
  key: "columnList",
21868
21890
  get: function get() {
@@ -21981,10 +22003,84 @@ var TableViewServiceImpl = /*#__PURE__*/function () {
21981
22003
  get: function get() {
21982
22004
  return this.grid.Source;
21983
22005
  }
22006
+ }, {
22007
+ key: "linkItemId",
22008
+ get: function get() {
22009
+ return this.grid.linkItemId;
22010
+ },
22011
+ set: function set(id) {
22012
+ this.grid.linkItemId = id;
22013
+ }
21984
22014
  }]);
21985
22015
  return TableViewServiceImpl;
21986
22016
  }();
21987
22017
 
22018
+ var TableViewOnCustomAjaxServiceImpl = /*#__PURE__*/function () {
22019
+ function TableViewOnCustomAjaxServiceImpl(ajaxService) {
22020
+ this.id = EVENT$1.ON_CUSTOM_AJAX;
22021
+ this.data = 'Data';
22022
+ this.dataRequestUrl = '/api/tableViewRequest/' + this.data;
22023
+ this.dataResultString = '<Grid><Body><B /></Body></Grid>';
22024
+ this.getRequest = 'Get';
22025
+ this.treeGrid = 'treegrid/';
22026
+ this.api = '/api/';
22027
+ this.cacheVersionParam = 'CacheVersion';
22028
+ this.ajaxService = ajaxService;
22029
+ }
22030
+ var _proto = TableViewOnCustomAjaxServiceImpl.prototype;
22031
+ _proto.process = function process(tableView, source, data, func) {
22032
+ var success = function success(ret) {
22033
+ return func(0, ret);
22034
+ };
22035
+ if (source.Url && source.Url.indexOf(this.dataRequestUrl) === 0) {
22036
+ success(this.dataResultString);
22037
+ return true;
22038
+ }
22039
+ var fail = function fail() {
22040
+ return func(0, '<Grid><IO / > <Body><B Pos="0" Count = "0" /> </Body></Grid>');
22041
+ };
22042
+ var url = source.Url;
22043
+ if (url.indexOf(this.api) !== 0) {
22044
+ url = this.getTreeGridFileUrl(tableView[this.cacheVersionParam], source);
22045
+ }
22046
+ if (source.Method === this.getRequest) {
22047
+ this.ajaxService.get(url, tableView.scope).then(success)["catch"](fail);
22048
+ } else {
22049
+ var formData = new FormData();
22050
+ formData.set(this.data, data);
22051
+ this.ajaxService.post(url, formData, tableView.scope).then(success)["catch"](fail);
22052
+ }
22053
+ return true;
22054
+ };
22055
+ _proto.getTreeGridFileUrl = function getTreeGridFileUrl(cacheVersion, source) {
22056
+ var url = source.Url;
22057
+ if (url[0] !== CTRL.SLASH) {
22058
+ if (url.indexOf(this.treeGrid) !== 0) {
22059
+ url = this.treeGrid + source.Url;
22060
+ }
22061
+ url = CTRL.SLASH + url;
22062
+ }
22063
+ if (url.indexOf(CTRL.QUESTION) === -1) {
22064
+ url += CTRL.QUESTION + this.cacheVersionParam + CTRL.EQUAL + cacheVersion;
22065
+ }
22066
+ return url;
22067
+ };
22068
+ return TableViewOnCustomAjaxServiceImpl;
22069
+ }();
22070
+
22071
+ var SERVICE = function SERVICE() {};
22072
+ SERVICE.LOCALE = 'LocaleService';
22073
+ SERVICE.LOCAL_STORAGE = 'LocalStorageService';
22074
+ SERVICE.COLUMN = 'ColumnService';
22075
+ SERVICE.GUID = 'GuidService';
22076
+ SERVICE.EVENT = 'EventService';
22077
+ SERVICE.IMAGE = 'ImageService';
22078
+ SERVICE.ITEM = 'ItemService';
22079
+ SERVICE.CONTENT_TYPE = 'ContentTypeService';
22080
+ SERVICE.LOOKUP_LIST_ITEM = 'LookupListItemService';
22081
+ SERVICE.ITEM_SELECT_DIALOG = 'ItemSelectDialogService';
22082
+ SERVICE.AJAX = 'AjaxService';
22083
+
21988
22084
  var styles$5 = {"vitro-table-view":"_table-view_vitro-table-view_1tTs32D"};
21989
22085
 
21990
22086
  var w$2 = window;
@@ -22056,6 +22152,22 @@ var TreeGrid = function TreeGrid(props) {
22056
22152
  return [URL.API, controller, dataKey, props.listCode].join(CTRL.SLASH);
22057
22153
  }
22058
22154
  };
22155
+ var initOnCustomAjax = function initOnCustomAjax() {
22156
+ if (props.onCustomAjax) {
22157
+ var onCustomAjax = props.onCustomAjax;
22158
+ w$2.TGSetEvent(EVENT$1.ON_CUSTOM_AJAX, props.id, function (grid, source, data, func) {
22159
+ return onCustomAjax(grid, source, data, func);
22160
+ });
22161
+ } else if (props.container) {
22162
+ var ajaxService = props.container.get(SERVICE.AJAX);
22163
+ if (ajaxService) {
22164
+ var tableViewOnCustomAjaxService = new TableViewOnCustomAjaxServiceImpl(ajaxService);
22165
+ w$2.TGSetEvent(EVENT$1.ON_CUSTOM_AJAX, props.id, function (grid, source, data, func) {
22166
+ return tableViewOnCustomAjaxService.process(grid, source, data, func);
22167
+ });
22168
+ }
22169
+ }
22170
+ };
22059
22171
  React.useEffect(function () {
22060
22172
  if (prevGridIdRef.current) {
22061
22173
  disposeTableViewById(prevGridIdRef.current);
@@ -22065,15 +22177,10 @@ var TreeGrid = function TreeGrid(props) {
22065
22177
  w$2.TGSetEvent(EVENT$1.ON_LOADED, props.id, function (grid, next) {
22066
22178
  return onGridLoaded(grid, next);
22067
22179
  });
22068
- w$2.TGSetEvent(EVENT$1.ON_INIT, props.id, function (grid, reload) {
22180
+ w$2.TGSetEvent(EVENT$1.ON_INIT, props.id, function (grid) {
22069
22181
  return onGridInit(grid);
22070
22182
  });
22071
- if (props.onCustomAjax) {
22072
- var onCustomAjax = props.onCustomAjax;
22073
- w$2.TGSetEvent(EVENT$1.ON_CUSTOM_AJAX, props.id, function (grid, source, data, func) {
22074
- return onCustomAjax(grid, source, data, func);
22075
- });
22076
- }
22183
+ initOnCustomAjax();
22077
22184
  }
22078
22185
  if (w$2.TreeGrid) {
22079
22186
  if (props.layout || props.data) {
@@ -22175,6 +22282,7 @@ var MicroFrontendServiceImpl = /*#__PURE__*/function () {
22175
22282
 
22176
22283
  var styles$6 = {"vitro-micro-frontend":"_micro-frontend_vitro-micro-frontend_3PhlRuX"};
22177
22284
 
22285
+ var index = 1;
22178
22286
  var MicroFrontend = React.forwardRef(function (props, ref) {
22179
22287
  var _useState = React.useState(),
22180
22288
  id = _useState[0],
@@ -22189,7 +22297,7 @@ var MicroFrontend = React.forwardRef(function (props, ref) {
22189
22297
  if (props.data.containerId) {
22190
22298
  setId(props.data.containerId);
22191
22299
  } else {
22192
- var containerId = id ? id : getId(rootRef.current);
22300
+ var containerId = (id ? id : getId(rootRef.current)) + CTRL.DASH + index++;
22193
22301
  setId(containerId);
22194
22302
  props.data.containerId = containerId;
22195
22303
  }
@@ -22724,18 +22832,6 @@ var DropZone = React.forwardRef(function (props, ref) {
22724
22832
  }, props.label)));
22725
22833
  });
22726
22834
 
22727
- var SERVICE = function SERVICE() {};
22728
- SERVICE.LOCALE = 'LocaleService';
22729
- SERVICE.LOCAL_STORAGE = 'LocalStorageService';
22730
- SERVICE.COLUMN = 'ColumnService';
22731
- SERVICE.GUID = 'GuidService';
22732
- SERVICE.EVENT = 'EventService';
22733
- SERVICE.IMAGE = 'ImageService';
22734
- SERVICE.ITEM = 'ItemService';
22735
- SERVICE.CONTENT_TYPE = 'ContentTypeService';
22736
- SERVICE.LOOKUP_LIST_ITEM = 'LookupListItemService';
22737
- SERVICE.ITEM_SELECT_DIALOG = 'ItemSelectDialogService';
22738
-
22739
22835
  var styles$a = {"vitro-uploader":"_uploader_vitro-uploader_237vX7T","vitro-upload-container":"_uploader_vitro-upload-container_2ASGHSS","vitro-drop-zone":"_uploader_vitro-drop-zone_3w2dluc","vitro-progress-info":"_uploader_vitro-progress-info_J4BRjZ0","vitro-button-close":"_uploader_vitro-button-close_30As0AM","vitro-button-show":"_uploader_vitro-button-show_uUmWVJc","vitro-button-hide":"_uploader_vitro-button-hide_LYS1px9","vitro-hidden":"_uploader_vitro-hidden_12825pc","vitro-progress":"_uploader_vitro-progress_2NtaSj2","vitro-progress-bar":"_uploader_vitro-progress-bar_3YXLbbu"};
22740
22836
 
22741
22837
  var $$2 = window.$;
@@ -56386,35 +56482,6 @@ var BootstrapAlert = Object.assign(Alert, {
56386
56482
  Heading: AlertHeading
56387
56483
  });
56388
56484
 
56389
- const Button$1 = /*#__PURE__*/React.forwardRef(({
56390
- as,
56391
- bsPrefix,
56392
- variant = 'primary',
56393
- size,
56394
- active = false,
56395
- disabled = false,
56396
- className,
56397
- ...props
56398
- }, ref) => {
56399
- const prefix = useBootstrapPrefix(bsPrefix, 'btn');
56400
- const [buttonProps, {
56401
- tagName
56402
- }] = useButtonProps({
56403
- tagName: as,
56404
- disabled,
56405
- ...props
56406
- });
56407
- const Component = tagName;
56408
- return /*#__PURE__*/jsxRuntime.jsx(Component, {
56409
- ...buttonProps,
56410
- ...props,
56411
- ref: ref,
56412
- disabled: disabled,
56413
- className: classnames(className, prefix, active && 'active', variant && `${prefix}-${variant}`, size && `${prefix}-${size}`, props.href && disabled && 'disabled')
56414
- });
56415
- });
56416
- Button$1.displayName = 'Button';
56417
-
56418
56485
  const context = /*#__PURE__*/React.createContext(null);
56419
56486
  context.displayName = 'CardHeaderContext';
56420
56487
 
@@ -59912,11 +59979,12 @@ var DialogComponent = function DialogComponent(props) {
59912
59979
  }, props.children);
59913
59980
  };
59914
59981
 
59915
- var styles$e = {"vitro-dialog-content":"_dialog-content_vitro-dialog-content_qQNWu6x"};
59982
+ var styles$e = {"vitro-dialog-content":"_dialog-content_vitro-dialog-content_qQNWu6x","vitro-dialog-content-padding":"_dialog-content_vitro-dialog-content-padding_oVEc6Z4"};
59916
59983
 
59917
59984
  var DialogContent = function DialogContent(props) {
59985
+ var className = [styles$e['vitro-dialog-content'], props.isCustomContainer ? CTRL.EMPTY : styles$e['vitro-dialog-content-padding'], props.className || CTRL.EMPTY].join(CTRL.SPACE);
59918
59986
  return React__default.createElement("div", {
59919
- className: styles$e['vitro-dialog-content'] + (props.className ? CTRL.SPACE + props.className : CTRL.EMPTY)
59987
+ className: className
59920
59988
  }, props.children);
59921
59989
  };
59922
59990
 
@@ -59983,7 +60051,7 @@ var styles$h = {"vitro-button":"_button_vitro-button_hVfBuSO","vitro-animation-r
59983
60051
 
59984
60052
  var HTML_ELEMENT_SPAN = 'span';
59985
60053
  var TYPE_BUTTON = 'button';
59986
- var Button$2 = React.forwardRef(function (props, ref) {
60054
+ var Button$1 = React.forwardRef(function (props, ref) {
59987
60055
  var _useState = React.useState(false),
59988
60056
  pending = _useState[0],
59989
60057
  setPending = _useState[1];
@@ -60062,7 +60130,7 @@ var Button$2 = React.forwardRef(function (props, ref) {
60062
60130
  });
60063
60131
 
60064
60132
  var ButtonCancel = function ButtonCancel(props) {
60065
- return React__default.createElement(Button$2, Object.assign({}, props, {
60133
+ return React__default.createElement(Button$1, Object.assign({}, props, {
60066
60134
  className: STYLE.OUTLINE_LIGHT + (props.className ? CTRL.SPACE + props.className : CTRL.EMPTY)
60067
60135
  }));
60068
60136
  };
@@ -60074,7 +60142,7 @@ var ButtonGroup = React.forwardRef(function (props, ref) {
60074
60142
  ref: ref,
60075
60143
  className: styles$i['vitro-button-group'] + (props.className ? CTRL.SPACE + props.className : CTRL.EMPTY)
60076
60144
  }, props.itemList && props.itemList.length > 0 ? props.itemList.map(function (item, index) {
60077
- return React__default.createElement(Button$2, Object.assign({}, item, {
60145
+ return React__default.createElement(Button$1, Object.assign({}, item, {
60078
60146
  key: index
60079
60147
  }));
60080
60148
  }) : null, props.children);
@@ -60150,7 +60218,7 @@ var DialogFooter = function DialogFooter(props) {
60150
60218
  onClick: props.onClose,
60151
60219
  className: styles$k['vitro-button']
60152
60220
  }), (_props$buttonList2 = props.buttonList) !== null && _props$buttonList2 !== void 0 && _props$buttonList2.length ? props.buttonList.map(function (button) {
60153
- return React__default.createElement(Button$2, Object.assign({}, button, {
60221
+ return React__default.createElement(Button$1, Object.assign({}, button, {
60154
60222
  onClick: function onClick() {
60155
60223
  var _button$onClick;
60156
60224
  return (_button$onClick = button.onClick) === null || _button$onClick === void 0 ? void 0 : _button$onClick.call(button, props.dialog);
@@ -60289,7 +60357,8 @@ var Dialog = function Dialog(props) {
60289
60357
  content: props.headerContent,
60290
60358
  className: props.headerClassName
60291
60359
  }), component && React__default.createElement(DialogContent, {
60292
- className: props.contentClassName
60360
+ className: props.contentClassName,
60361
+ isCustomContainer: props.isCustomContentContainer
60293
60362
  }, component), props.children, isMobileView && props.hiddenContent && React__default.createElement(DialogDetailExpandButton, {
60294
60363
  onClick: onClickDetailButton
60295
60364
  }), props.hiddenContent && React__default.createElement("div", {
@@ -61101,25 +61170,188 @@ var OverflowButton = function OverflowButton(props) {
61101
61170
  });
61102
61171
  };
61103
61172
 
61173
+ var CSS_PROPERTY = function CSS_PROPERTY() {};
61174
+ CSS_PROPERTY.FONT_WEIGHT = 'font-weight';
61175
+ CSS_PROPERTY.FONT_SIZE = 'font-size';
61176
+ CSS_PROPERTY.FONT_FAMILY = 'font-family';
61177
+
61178
+ var ValueTooltip = React.forwardRef(function (props, ref) {
61179
+ var _useState = React.useState(false),
61180
+ isEnabled = _useState[0],
61181
+ setIsEnabled = _useState[1];
61182
+ var _useState2 = React.useState(false),
61183
+ isShow = _useState2[0],
61184
+ setIsShow = _useState2[1];
61185
+ var _useState3 = React.useState(props.text),
61186
+ text = _useState3[0],
61187
+ _setText = _useState3[1];
61188
+ var canvasRef = React.useRef();
61189
+ var containerRef = React.useRef();
61190
+ var onShowTimeout = React.useMemo(function () {
61191
+ return {
61192
+ id: null
61193
+ };
61194
+ }, []);
61195
+ var resizeObserver = React__default.useMemo(function () {
61196
+ return new window.ResizeObserver(function (entries) {
61197
+ for (var _iterator = _createForOfIteratorHelperLoose(entries), _step; !(_step = _iterator()).done;) {
61198
+ var entry = _step.value;
61199
+ setIsEnabled(isValueOverflow(text, entry.target));
61200
+ }
61201
+ });
61202
+ }, [text]);
61203
+ React.useEffect(function () {
61204
+ if (props.containerRef && props.containerRef.current) {
61205
+ containerRef.current = props.containerRef.current;
61206
+ resizeObserver.observe(containerRef.current);
61207
+ containerRef.current.addEventListener(exports.EVENT.MOUSEENTER, onMouseEnter);
61208
+ containerRef.current.addEventListener(exports.EVENT.MOUSELEAVE, onMouseLeave);
61209
+ }
61210
+ return function () {
61211
+ if (containerRef.current) {
61212
+ containerRef.current.removeEventListener(exports.EVENT.MOUSEENTER, onMouseEnter);
61213
+ containerRef.current.removeEventListener(exports.EVENT.MOUSELEAVE, onMouseLeave);
61214
+ }
61215
+ };
61216
+ }, [props.containerRef, resizeObserver]);
61217
+ React.useEffect(function () {
61218
+ return function () {
61219
+ resizeObserver.disconnect();
61220
+ };
61221
+ }, []);
61222
+ React.useEffect(function () {
61223
+ _setText(props.text);
61224
+ if (containerRef.current) {
61225
+ setIsEnabled(isValueOverflow(props.text, containerRef.current));
61226
+ } else {
61227
+ setIsEnabled(true);
61228
+ }
61229
+ }, [props.text]);
61230
+ React.useEffect(function () {
61231
+ if (props.onUpdate) {
61232
+ props.onUpdate(isEnabled);
61233
+ }
61234
+ }, [isEnabled]);
61235
+ React.useImperativeHandle(ref, function () {
61236
+ return {
61237
+ update: function update() {
61238
+ if (containerRef.current) {
61239
+ setIsEnabled(isValueOverflow(text, containerRef.current));
61240
+ }
61241
+ },
61242
+ setIsShow: function setIsShow(value) {
61243
+ if (value === false) {
61244
+ setIsEnabled(false);
61245
+ } else {
61246
+ if (containerRef.current) {
61247
+ setIsEnabled(isValueOverflow(text, containerRef.current));
61248
+ } else {
61249
+ setIsEnabled(true);
61250
+ }
61251
+ }
61252
+ },
61253
+ setText: function setText(value) {
61254
+ _setText(value);
61255
+ }
61256
+ };
61257
+ });
61258
+ var isValueOverflow = function isValueOverflow(value, container) {
61259
+ if (props.isMultiline) {
61260
+ return isValueVerticalOverflow(container);
61261
+ }
61262
+ return isValueHorizontalOverflow(value, container);
61263
+ };
61264
+ var isValueHorizontalOverflow = function isValueHorizontalOverflow(value, container) {
61265
+ var textWidth = getTextWidth(value, getCanvasFont(container), container.scrollWidth);
61266
+ if (container && textWidth > getAvailableWidth(container)) {
61267
+ return true;
61268
+ } else {
61269
+ return false;
61270
+ }
61271
+ };
61272
+ var isValueVerticalOverflow = function isValueVerticalOverflow(container) {
61273
+ return container.clientHeight + 1 < container.scrollHeight;
61274
+ };
61275
+ var getTextWidth = function getTextWidth(text, font, scrollWidth) {
61276
+ if (!canvasRef.current) {
61277
+ canvasRef.current = document.createElement('canvas');
61278
+ }
61279
+ var canvas = canvasRef.current;
61280
+ var context = canvas.getContext('2d');
61281
+ if (context) {
61282
+ context.font = font;
61283
+ var metrics = context.measureText(text);
61284
+ return metrics.width;
61285
+ }
61286
+ return scrollWidth;
61287
+ };
61288
+ var getAvailableWidth = function getAvailableWidth(element) {
61289
+ var style = getComputedStyle(element);
61290
+ var paddingX = getNumber(style.paddingLeft) + getNumber(style.paddingRight);
61291
+ var borderX = getNumber(style.borderLeftWidth) + getNumber(style.borderRightWidth);
61292
+ return element.offsetWidth - paddingX - borderX;
61293
+ };
61294
+ var getNumber = function getNumber(value) {
61295
+ return parseFloat(value) || 0;
61296
+ };
61297
+ var getCssStyle = function getCssStyle(element, prop) {
61298
+ return window.getComputedStyle(element, null).getPropertyValue(prop);
61299
+ };
61300
+ var getCanvasFont = function getCanvasFont(el) {
61301
+ if (el === void 0) {
61302
+ el = document.body;
61303
+ }
61304
+ var fontWeight = getCssStyle(el, CSS_PROPERTY.FONT_WEIGHT);
61305
+ var fontSize = getCssStyle(el, CSS_PROPERTY.FONT_SIZE);
61306
+ var fontFamily = getCssStyle(el, CSS_PROPERTY.FONT_FAMILY);
61307
+ return fontWeight + " " + fontSize + " " + fontFamily;
61308
+ };
61309
+ var onMouseEnter = function onMouseEnter(e) {
61310
+ if (onShowTimeout.id) {
61311
+ clearTimeout(onShowTimeout.id);
61312
+ }
61313
+ if (e.target == containerRef.current) {
61314
+ onShowTimeout.id = setTimeout(function () {
61315
+ setIsShow(true);
61316
+ }, 750);
61317
+ }
61318
+ };
61319
+ var onMouseLeave = function onMouseLeave(e) {
61320
+ if (onShowTimeout.id) {
61321
+ clearTimeout(onShowTimeout.id);
61322
+ }
61323
+ setTimeout(function () {
61324
+ return setIsShow(false);
61325
+ }, 300);
61326
+ };
61327
+ return React__default.createElement(Tooltip$1, Object.assign({}, props, {
61328
+ text: text,
61329
+ isShow: isEnabled ? isShow : false,
61330
+ isHideOnHover: false
61331
+ }), props.children);
61332
+ });
61333
+
61104
61334
  var styles$r = {"vitro-tab":"_tab-group_vitro-tab_1Qb50HL","vitro-item":"_tab-group_vitro-item_2YnBcmb","active":"_tab-group_active_3M-IIR2"};
61105
61335
 
61106
61336
  var Tab = function Tab(props) {
61107
- if (!props.icon && !props.title) {
61108
- return null;
61109
- }
61337
+ var linkRef = React.useRef(null);
61110
61338
  return React__default.createElement("div", {
61111
61339
  key: props.index,
61112
61340
  className: styles$r['vitro-item']
61341
+ }, React__default.createElement(ValueTooltip, {
61342
+ text: props.text,
61343
+ containerRef: linkRef
61113
61344
  }, React__default.createElement(Nav$2.Item, {
61114
61345
  className: props.active ? styles$r['active'] : undefined,
61115
61346
  onClick: function onClick() {
61116
61347
  return props.onClick(props.index);
61117
61348
  }
61118
61349
  }, React__default.createElement(Nav$2.Link, {
61119
- eventKey: props.eventKey
61120
- }, React__default.createElement("span", null, props.icon && React__default.createElement(Image, {
61121
- defaultUrl: props.icon
61122
- }), props.title))));
61350
+ eventKey: props.eventKey,
61351
+ ref: linkRef
61352
+ }, React__default.createElement("span", null, props.imageUrl && React__default.createElement(Image, {
61353
+ defaultUrl: props.imageUrl
61354
+ }), props.text)))));
61123
61355
  };
61124
61356
 
61125
61357
  var TabGroupHeader = function TabGroupHeader(props) {
@@ -61167,8 +61399,8 @@ var TabGroupHeader = function TabGroupHeader(props) {
61167
61399
  active: index === props.currentTab,
61168
61400
  onClick: onClick,
61169
61401
  eventKey: item.eventKey,
61170
- icon: item.icon,
61171
- title: item.text
61402
+ imageUrl: item.imageUrl,
61403
+ text: item.text
61172
61404
  });
61173
61405
  }
61174
61406
  if (activeItem && activeItem.index === index) {
@@ -61182,8 +61414,8 @@ var TabGroupHeader = function TabGroupHeader(props) {
61182
61414
  active: true,
61183
61415
  onClick: function onClick() {},
61184
61416
  eventKey: activeItem.eventKey,
61185
- icon: activeItem.icon,
61186
- title: activeItem.text
61417
+ imageUrl: activeItem.imageUrl,
61418
+ text: activeItem.text
61187
61419
  }), props.itemList && props.wrap && React__default.createElement(OverflowButton, {
61188
61420
  list: overflowTabList,
61189
61421
  offset: props.itemList.length - overflowTabList.length,
@@ -61247,10 +61479,11 @@ var TabGroupComponent = React.forwardRef(function (props, forwardedRef) {
61247
61479
  }
61248
61480
  return null;
61249
61481
  };
61482
+ var isShowHeader = props.itemList.length === 1 ? props.itemList[0].isAlwaysShown === true : true;
61250
61483
  return React__default.createElement("div", {
61251
61484
  className: styles$r['vitro-tab'] + (props.className ? CTRL.SPACE + props.className : CTRL.EMPTY),
61252
61485
  ref: ref
61253
- }, props.itemList.length === 1 && props.isHideSingleHeader === true ? null : React__default.createElement(TabGroupHeader, {
61486
+ }, isShowHeader ? React__default.createElement(TabGroupHeader, {
61254
61487
  itemList: props.itemList.map(function (item, index) {
61255
61488
  return _extends({}, item, {
61256
61489
  index: index
@@ -61261,7 +61494,7 @@ var TabGroupComponent = React.forwardRef(function (props, forwardedRef) {
61261
61494
  changeTab: changeTab,
61262
61495
  wrap: props.wrap,
61263
61496
  isDisabled: props.isDisabled
61264
- }), React__default.createElement("div", {
61497
+ }) : null, React__default.createElement("div", {
61265
61498
  className: 'vitro-content'
61266
61499
  }, getContent()));
61267
61500
  });
@@ -61304,7 +61537,9 @@ var ViewPart = function ViewPart(props) {
61304
61537
  React.useEffect(function () {
61305
61538
  if (props.component) {
61306
61539
  props.props.settings = props.settings;
61307
- var _component = React__default.createElement(props.component, props.props);
61540
+ var _component = React__default.createElement(props.component, _extends({}, props.props, {
61541
+ scrollElementRef: props.scrollElementRef
61542
+ }));
61308
61543
  setComponent(_component);
61309
61544
  } else {
61310
61545
  setComponent(null);
@@ -61334,6 +61569,7 @@ var styles$u = {"vitro-view":"_view_vitro-view_1NKb-kU","vitro-tab":"_view_vitro
61334
61569
 
61335
61570
  var GroupControl = function GroupControl(props) {
61336
61571
  var scrollbarContentRef = React.useRef(null);
61572
+ var scrollElementRef = React.useRef();
61337
61573
  React.useEffect(function () {
61338
61574
  scrollIntoView();
61339
61575
  }, [props.item.id]);
@@ -61342,16 +61578,22 @@ var GroupControl = function GroupControl(props) {
61342
61578
  scrollbarContentRef.current.scrollIntoView();
61343
61579
  }
61344
61580
  };
61581
+ var onInit = function onInit(elem, scrollElement) {
61582
+ scrollElementRef.current = scrollElement;
61583
+ };
61345
61584
  return React__default.createElement(ControlGroup, {
61346
61585
  horizontal: true
61347
61586
  }, React__default.createElement(ScrollBar, {
61348
61587
  contentClassName: styles$u['vitro-content'],
61349
- contentRef: scrollbarContentRef
61588
+ contentRef: scrollbarContentRef,
61589
+ key: props.key,
61590
+ onInit: onInit
61350
61591
  }, props.componentList && props.componentList.map(function (viewPart) {
61351
61592
  return React__default.createElement(ViewPart, {
61352
61593
  component: viewPart.component,
61353
61594
  settings: viewPart.settings,
61354
61595
  props: props,
61596
+ scrollElementRef: scrollElementRef,
61355
61597
  item: props.item,
61356
61598
  className: styles$u['vitro-view-part']
61357
61599
  });
@@ -61363,17 +61605,18 @@ var View = React.forwardRef(function (props, ref) {
61363
61605
  tabList = _useState[0],
61364
61606
  setTabList = _useState[1];
61365
61607
  var createTabList = function createTabList(tabList) {
61366
- return tabList.map(function (tab) {
61367
- return {
61608
+ return tabList.map(function (tab, index) {
61609
+ return _extends({}, tab, {
61368
61610
  text: tab.text,
61369
61611
  content: {
61370
61612
  component: GroupControl,
61371
61613
  props: {
61372
61614
  item: props.item,
61373
- componentList: tab.componentList
61615
+ componentList: tab.componentList,
61616
+ key: index
61374
61617
  }
61375
61618
  }
61376
- };
61619
+ });
61377
61620
  });
61378
61621
  };
61379
61622
  React.useEffect(function () {
@@ -61382,12 +61625,11 @@ var View = React.forwardRef(function (props, ref) {
61382
61625
  }
61383
61626
  }, [props.tabList]);
61384
61627
  return tabList && React__default.createElement("div", {
61385
- className: styles$u['vitro-view']
61628
+ className: styles$u['vitro-view'] + (props.className ? CTRL.SPACE + props.className : CTRL.EMPTY)
61386
61629
  }, React__default.createElement(TabGroup, {
61387
61630
  itemList: tabList,
61388
61631
  isDisabled: props.isDisabled,
61389
61632
  className: styles$u['vitro-tab'],
61390
- isHideSingleHeader: props.isHideSingleTabHeader,
61391
61633
  ref: ref,
61392
61634
  wrap: true
61393
61635
  }));
@@ -61512,7 +61754,7 @@ var TabButtonGroup = function TabButtonGroup(props) {
61512
61754
  return ((_tabList$index = tabList[index]) === null || _tabList$index === void 0 ? void 0 : _tabList$index.id) == activeItem;
61513
61755
  };
61514
61756
  var getTabButton = function getTabButton(item, index) {
61515
- return React__default.createElement(Button$2, {
61757
+ return React__default.createElement(Button$1, {
61516
61758
  key: item.id,
61517
61759
  className: isTabButtonActive(index) ? styles$v[CSS_CLASS_ACTIVE] : CTRL.EMPTY,
61518
61760
  text: item.text,
@@ -61543,7 +61785,7 @@ var TabButtonGroup = function TabButtonGroup(props) {
61543
61785
  }
61544
61786
  overflowTabList.push(item);
61545
61787
  return null;
61546
- }), activeItemTabBtn && React__default.createElement(Button$2, {
61788
+ }), activeItemTabBtn && React__default.createElement(Button$1, {
61547
61789
  key: activeItemTabBtn.id,
61548
61790
  className: styles$v[CSS_CLASS_ACTIVE],
61549
61791
  text: activeItemTabBtn.text,
@@ -62059,8 +62301,14 @@ var FieldIterator = React.forwardRef(function (props, ref) {
62059
62301
  var styles$C = {"vitro-issue-tile":"_issue-tile_vitro-issue-tile_2D7E9Y-","vitro-control":"_issue-tile_vitro-control_3V6_Ze7"};
62060
62302
 
62061
62303
  var IssueTile = function IssueTile(props) {
62304
+ var onChange = function onChange(changedFieldValueMap, saveStatus) {
62305
+ if (props.onChange) {
62306
+ props.onChange(changedFieldValueMap, saveStatus);
62307
+ }
62308
+ };
62062
62309
  return React__default.createElement("div", {
62063
62310
  id: 'vitro-issue-tile-' + props.id,
62311
+ "data-type": 'app',
62064
62312
  className: styles$C['vitro-issue-tile'] + (props.isActive ? CTRL.SPACE + 'vitro-active' : CTRL.EMPTY),
62065
62313
  onClick: props.onClick
62066
62314
  }, React__default.createElement(IssueTileHeader, {
@@ -62072,12 +62320,14 @@ var IssueTile = function IssueTile(props) {
62072
62320
  fileVersion: props.fileVersion,
62073
62321
  fileVersionUrl: props.fileVersionUrl,
62074
62322
  actionList: props.actionList
62075
- }), React__default.createElement(FieldIterator, {
62076
- fieldList: props.fieldList,
62077
- componentMap: props.componentMap,
62323
+ }), props.content ? React__default.createElement(MicroFrontend, Object.assign({}, props.content, {
62324
+ className: styles$C['vitro-micro-frontend']
62325
+ })) : React__default.createElement(FieldIterator, {
62326
+ fieldList: props.fieldList || [],
62327
+ componentMap: props.componentMap || [],
62078
62328
  rowFieldList: props.rowFieldList,
62079
62329
  fieldValueMap: props.fieldValueMap,
62080
- onChange: props.onChange
62330
+ onChange: onChange
62081
62331
  }), React__default.createElement(IssueTileFooter, {
62082
62332
  status: props.status,
62083
62333
  statusColor: props.statusColor,
@@ -62565,7 +62815,7 @@ var AddFieldButton = React.forwardRef(function (props, ref) {
62565
62815
  };
62566
62816
  return React__default.createElement("div", {
62567
62817
  className: styles$H['vitro-add-field']
62568
- }, React__default.createElement(Button$2, {
62818
+ }, React__default.createElement(Button$1, {
62569
62819
  ref: addFieldButtonRef,
62570
62820
  text: props.labelAddField,
62571
62821
  onClick: props.onAddField,
@@ -62933,170 +63183,9 @@ var CriterionFieldIterator = function CriterionFieldIterator(props) {
62933
63183
  })));
62934
63184
  };
62935
63185
 
62936
- var CSS_PROPERTY = function CSS_PROPERTY() {};
62937
- CSS_PROPERTY.FONT_WEIGHT = 'font-weight';
62938
- CSS_PROPERTY.FONT_SIZE = 'font-size';
62939
- CSS_PROPERTY.FONT_FAMILY = 'font-family';
62940
-
62941
- var ValueTooltip = React.forwardRef(function (props, ref) {
62942
- var _useState = React.useState(false),
62943
- isEnabled = _useState[0],
62944
- setIsEnabled = _useState[1];
62945
- var _useState2 = React.useState(false),
62946
- isShow = _useState2[0],
62947
- setIsShow = _useState2[1];
62948
- var _useState3 = React.useState(props.text),
62949
- text = _useState3[0],
62950
- _setText = _useState3[1];
62951
- var canvasRef = React.useRef();
62952
- var containerRef = React.useRef();
62953
- var onShowTimeout = React.useMemo(function () {
62954
- return {
62955
- id: null
62956
- };
62957
- }, []);
62958
- var resizeObserver = React__default.useMemo(function () {
62959
- return new window.ResizeObserver(function (entries) {
62960
- for (var _iterator = _createForOfIteratorHelperLoose(entries), _step; !(_step = _iterator()).done;) {
62961
- var entry = _step.value;
62962
- setIsEnabled(isValueOverflow(text, entry.target));
62963
- }
62964
- });
62965
- }, [text]);
62966
- React.useEffect(function () {
62967
- if (props.containerRef && props.containerRef.current) {
62968
- containerRef.current = props.containerRef.current;
62969
- resizeObserver.observe(containerRef.current);
62970
- containerRef.current.addEventListener(exports.EVENT.MOUSEENTER, onMouseEnter);
62971
- containerRef.current.addEventListener(exports.EVENT.MOUSELEAVE, onMouseLeave);
62972
- }
62973
- return function () {
62974
- if (containerRef.current) {
62975
- containerRef.current.removeEventListener(exports.EVENT.MOUSEENTER, onMouseEnter);
62976
- containerRef.current.removeEventListener(exports.EVENT.MOUSELEAVE, onMouseLeave);
62977
- }
62978
- };
62979
- }, [props.containerRef, resizeObserver]);
62980
- React.useEffect(function () {
62981
- return function () {
62982
- resizeObserver.disconnect();
62983
- };
62984
- }, []);
62985
- React.useEffect(function () {
62986
- _setText(props.text);
62987
- if (containerRef.current) {
62988
- setIsEnabled(isValueOverflow(props.text, containerRef.current));
62989
- } else {
62990
- setIsEnabled(true);
62991
- }
62992
- }, [props.text]);
62993
- React.useEffect(function () {
62994
- if (props.onUpdate) {
62995
- props.onUpdate(isEnabled);
62996
- }
62997
- }, [isEnabled]);
62998
- React.useImperativeHandle(ref, function () {
62999
- return {
63000
- update: function update() {
63001
- if (containerRef.current) {
63002
- setIsEnabled(isValueOverflow(text, containerRef.current));
63003
- }
63004
- },
63005
- setIsShow: function setIsShow(value) {
63006
- if (value === false) {
63007
- setIsEnabled(false);
63008
- } else {
63009
- if (containerRef.current) {
63010
- setIsEnabled(isValueOverflow(text, containerRef.current));
63011
- } else {
63012
- setIsEnabled(true);
63013
- }
63014
- }
63015
- },
63016
- setText: function setText(value) {
63017
- _setText(value);
63018
- }
63019
- };
63020
- });
63021
- var isValueOverflow = function isValueOverflow(value, container) {
63022
- if (props.isMultiline) {
63023
- return isValueVerticalOverflow(container);
63024
- }
63025
- return isValueHorizontalOverflow(value, container);
63026
- };
63027
- var isValueHorizontalOverflow = function isValueHorizontalOverflow(value, container) {
63028
- var textWidth = getTextWidth(value, getCanvasFont(container), container.scrollWidth);
63029
- if (container && textWidth > getAvailableWidth(container)) {
63030
- return true;
63031
- } else {
63032
- return false;
63033
- }
63034
- };
63035
- var isValueVerticalOverflow = function isValueVerticalOverflow(container) {
63036
- return container.clientHeight + 1 < container.scrollHeight;
63037
- };
63038
- var getTextWidth = function getTextWidth(text, font, scrollWidth) {
63039
- if (!canvasRef.current) {
63040
- canvasRef.current = document.createElement('canvas');
63041
- }
63042
- var canvas = canvasRef.current;
63043
- var context = canvas.getContext('2d');
63044
- if (context) {
63045
- context.font = font;
63046
- var metrics = context.measureText(text);
63047
- return metrics.width;
63048
- }
63049
- return scrollWidth;
63050
- };
63051
- var getAvailableWidth = function getAvailableWidth(element) {
63052
- var style = getComputedStyle(element);
63053
- var paddingX = getNumber(style.paddingLeft) + getNumber(style.paddingRight);
63054
- var borderX = getNumber(style.borderLeftWidth) + getNumber(style.borderRightWidth);
63055
- return element.offsetWidth - paddingX - borderX;
63056
- };
63057
- var getNumber = function getNumber(value) {
63058
- return parseFloat(value) || 0;
63059
- };
63060
- var getCssStyle = function getCssStyle(element, prop) {
63061
- return window.getComputedStyle(element, null).getPropertyValue(prop);
63062
- };
63063
- var getCanvasFont = function getCanvasFont(el) {
63064
- if (el === void 0) {
63065
- el = document.body;
63066
- }
63067
- var fontWeight = getCssStyle(el, CSS_PROPERTY.FONT_WEIGHT);
63068
- var fontSize = getCssStyle(el, CSS_PROPERTY.FONT_SIZE);
63069
- var fontFamily = getCssStyle(el, CSS_PROPERTY.FONT_FAMILY);
63070
- return fontWeight + " " + fontSize + " " + fontFamily;
63071
- };
63072
- var onMouseEnter = function onMouseEnter(e) {
63073
- if (onShowTimeout.id) {
63074
- clearTimeout(onShowTimeout.id);
63075
- }
63076
- if (e.target == containerRef.current) {
63077
- onShowTimeout.id = setTimeout(function () {
63078
- setIsShow(true);
63079
- }, 750);
63080
- }
63081
- };
63082
- var onMouseLeave = function onMouseLeave(e) {
63083
- if (onShowTimeout.id) {
63084
- clearTimeout(onShowTimeout.id);
63085
- }
63086
- setTimeout(function () {
63087
- return setIsShow(false);
63088
- }, 300);
63089
- };
63090
- return React__default.createElement(Tooltip$1, Object.assign({}, props, {
63091
- text: text,
63092
- isShow: isEnabled ? isShow : false,
63093
- isHideOnHover: false
63094
- }), props.children);
63095
- });
63096
-
63097
63186
  var styles$M = {"vitro-selected-item-multi":"_lookup-picker-selected-item_vitro-selected-item-multi_bzL7ugZ","vitro-selected-item":"_lookup-picker-selected-item_vitro-selected-item_hw-euth","vitro-button-close":"_lookup-picker-selected-item_vitro-button-close_1SRnr_0"};
63098
63187
 
63099
- var styles$N = {"vitro-lookup-picker":"_lookup-picker_vitro-lookup-picker_1aXYQEG","vitro-content":"_lookup-picker_vitro-content_37L0slb","vitro-lookup-picker-multi-select":"_lookup-picker_vitro-lookup-picker-multi-select_3Lkq2tk","vitro-value-container":"_lookup-picker_vitro-value-container_3GeBIaW","vitro-right":"_lookup-picker_vitro-right_1XFsL1w","vitro-read-only":"_lookup-picker_vitro-read-only_32NOdGB","vitro-label":"_lookup-picker_vitro-label_2QoJkUz","vitro-focus":"_lookup-picker_vitro-focus_2UGpxXD","vitro-error":"_lookup-picker_vitro-error_dF7iopC","vitro-error-message":"_lookup-picker_vitro-error-message_2iBjyRP","vitro-copy-button":"_lookup-picker_vitro-copy-button_3UItrZb","vitro-button-close":"_lookup-picker_vitro-button-close_3_Qndrj","vitro-button-collapse-up":"_lookup-picker_vitro-button-collapse-up_3i0OJub","vitro-button-collapse-bottom":"_lookup-picker_vitro-button-collapse-bottom_3o0Pl83","vitro-tooltip":"_lookup-picker_vitro-tooltip_2a12Z4P","vitro-library-button":"_lookup-picker_vitro-library-button_1zwNYAA"};
63188
+ var styles$N = {"vitro-lookup-picker":"_lookup-picker_vitro-lookup-picker_1aXYQEG","vitro-content":"_lookup-picker_vitro-content_37L0slb","vitro-read-only":"_lookup-picker_vitro-read-only_32NOdGB","vitro-label":"_lookup-picker_vitro-label_2QoJkUz","vitro-focus":"_lookup-picker_vitro-focus_2UGpxXD","vitro-error":"_lookup-picker_vitro-error_dF7iopC","vitro-error-message":"_lookup-picker_vitro-error-message_2iBjyRP","vitro-copy-button":"_lookup-picker_vitro-copy-button_3UItrZb","vitro-value-container":"_lookup-picker_vitro-value-container_3GeBIaW","vitro-multi-value-container":"_lookup-picker_vitro-multi-value-container_2ScQ_Ua","vitro-lookup-picker-multi-select":"_lookup-picker_vitro-lookup-picker-multi-select_3Lkq2tk","vitro-button-close":"_lookup-picker_vitro-button-close_3_Qndrj","vitro-button-collapse-up":"_lookup-picker_vitro-button-collapse-up_3i0OJub","vitro-button-collapse-bottom":"_lookup-picker_vitro-button-collapse-bottom_3o0Pl83","vitro-tooltip":"_lookup-picker_vitro-tooltip_2a12Z4P","vitro-right":"_lookup-picker_vitro-right_1XFsL1w","vitro-library-button":"_lookup-picker_vitro-library-button_1zwNYAA"};
63100
63189
 
63101
63190
  var htmlValueStyles = {"vitro-item-html-value":"_lookup-picker-html-value_vitro-item-html-value_2QBoTey"};
63102
63191
 
@@ -63193,9 +63282,15 @@ var ValueList = function ValueList(props) {
63193
63282
  }, []);
63194
63283
  React.useEffect(function () {
63195
63284
  if (props.isVisible && props.contentRef) {
63196
- setStyle({
63197
- width: props.contentRef.offsetWidth + UNIT.PX
63198
- });
63285
+ if (props.isFullWidth !== false) {
63286
+ setStyle({
63287
+ width: props.contentRef.offsetWidth + UNIT.PX
63288
+ });
63289
+ } else {
63290
+ setStyle({
63291
+ minWidth: props.contentRef.offsetWidth + UNIT.PX
63292
+ });
63293
+ }
63199
63294
  } else {
63200
63295
  setStyle({
63201
63296
  width: 0
@@ -63226,13 +63321,15 @@ var ValueList = function ValueList(props) {
63226
63321
  isShow: props.isVisible,
63227
63322
  target: props.contentRef,
63228
63323
  placement: props.placement,
63324
+ allowedAutoPlacements: props.allowedAutoPlacements,
63229
63325
  isFlip: props.isFlip,
63230
63326
  className: valueListStyles['vitro-value-list'],
63231
63327
  style: style ? style : {}
63232
63328
  }, React__default.createElement("div", {
63233
63329
  onMouseDown: onMouseDown
63234
63330
  }, React__default.createElement(ScrollBar, {
63235
- onInit: setScrollableElement
63331
+ onInit: setScrollableElement,
63332
+ isPreventParentScroll: true
63236
63333
  }, props.isPending && React__default.createElement(Progress, null), !props.isPending && React__default.createElement(React__default.Fragment, null, props.list.length > 0 ? props.list.sort(sortValueList).map(function (x) {
63237
63334
  return React__default.createElement(ValueListItem, {
63238
63335
  item: x,
@@ -63244,7 +63341,7 @@ var ValueList = function ValueList(props) {
63244
63341
  className: valueListStyles['vitro-placeholder-empty']
63245
63342
  }, props.emptyPlaceholder))), props.button && React__default.createElement(FlexBox, {
63246
63343
  className: valueListStyles['vitro-flex']
63247
- }, React__default.createElement(Button$2, Object.assign({}, props.button, {
63344
+ }, React__default.createElement(Button$1, Object.assign({}, props.button, {
63248
63345
  className: valueListStyles['vitro-button']
63249
63346
  })))));
63250
63347
  };
@@ -63300,9 +63397,10 @@ var CopyButton = function CopyButton(props) {
63300
63397
  });
63301
63398
  };
63302
63399
 
63303
- var RightButtonGroup = function RightButtonGroup(props) {
63400
+ var RightButtonGroup = React.forwardRef(function (props, ref) {
63304
63401
  return React__default.createElement(FlexBox, {
63305
- className: styles$N['vitro-right']
63402
+ className: styles$N['vitro-right'],
63403
+ ref: ref
63306
63404
  }, props.isShowButtonClear && React__default.createElement(ImageButton, {
63307
63405
  className: styles$N['vitro-button-close'],
63308
63406
  onClick: function onClick() {
@@ -63322,7 +63420,7 @@ var RightButtonGroup = function RightButtonGroup(props) {
63322
63420
  return props.selectedValueTemplate(x);
63323
63421
  }).join(CTRL.COMMA)
63324
63422
  }) : null);
63325
- };
63423
+ });
63326
63424
 
63327
63425
  var LOCALE$6;
63328
63426
  (function (LOCALE) {
@@ -63361,6 +63459,8 @@ var LookupPicker = React.forwardRef(function (props, ref) {
63361
63459
  var contentRef = React.useRef(null);
63362
63460
  var containerRef = React.useRef(null);
63363
63461
  var isShowTooltipRef = React.useRef(true);
63462
+ var scrollBarRef = React.useRef(null);
63463
+ var rightButtonGroupRef = React.useRef(null);
63364
63464
  var updatePending = function updatePending(valueList) {
63365
63465
  return setPending(valueList ? false : true);
63366
63466
  };
@@ -63436,9 +63536,6 @@ var LookupPicker = React.forwardRef(function (props, ref) {
63436
63536
  }
63437
63537
  }
63438
63538
  };
63439
- React.useEffect(function () {
63440
- onInputValueUpdated();
63441
- }, [inputValue]);
63442
63539
  React.useEffect(function () {
63443
63540
  if (props.valueList && selectedValueList) {
63444
63541
  updateFilteredValueList(props.valueList.filter(function (x) {
@@ -63479,12 +63576,16 @@ var LookupPicker = React.forwardRef(function (props, ref) {
63479
63576
  var selectedValueTemplate = function selectedValueTemplate(value) {
63480
63577
  return props.selectedValueTemplate ? props.selectedValueTemplate(value) : value.title;
63481
63578
  };
63579
+ var expandValueList = function expandValueList() {
63580
+ if (props.getAllValueList || props.getValueList) {
63581
+ setValueListVisible(true);
63582
+ }
63583
+ };
63482
63584
  var onChange = function onChange(e) {
63483
- var _inputRef$current;
63484
63585
  setState(styles$N['vitro-focus']);
63485
- setValueListVisible(true);
63586
+ expandValueList();
63486
63587
  setInputValue(e.target.value);
63487
- (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
63588
+ onInputValueUpdated();
63488
63589
  };
63489
63590
  var onKeyDown = function onKeyDown(e) {
63490
63591
  var keyBoardBackSpace = 8;
@@ -63553,8 +63654,8 @@ var LookupPicker = React.forwardRef(function (props, ref) {
63553
63654
  };
63554
63655
  var onOptionValueDelete = function onOptionValueDelete(id) {
63555
63656
  if (!props.isDisabled) {
63556
- var _inputRef$current2;
63557
- (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.focus();
63657
+ var _inputRef$current;
63658
+ (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
63558
63659
  var newSelectedValueList = id ? selectedValueList.filter(function (x) {
63559
63660
  return x.id !== id;
63560
63661
  }) : [];
@@ -63566,9 +63667,12 @@ var LookupPicker = React.forwardRef(function (props, ref) {
63566
63667
  };
63567
63668
  var onFocusOut = function onFocusOut(e) {
63568
63669
  var _document$activeEleme;
63670
+ if (scrollBarRef.current) {
63671
+ scrollBarRef.current.scrollTop = 0;
63672
+ }
63569
63673
  var target = e.currentTarget;
63570
63674
  var isValueListItem = Boolean(props.isMultiSelect && ((_document$activeEleme = document.activeElement) === null || _document$activeEleme === void 0 ? void 0 : _document$activeEleme.classList.contains(valueListStyles['vitro-item'])));
63571
- if (!target.contains(document.activeElement) && !isValueListItem) {
63675
+ if (!target.contains(document.activeElement) && !(e.target.parentElement == rightButtonGroupRef.current) && !isValueListItem) {
63572
63676
  setValueListVisible(false);
63573
63677
  setInputValue(CTRL.EMPTY);
63574
63678
  if (props.onBlur && !props.isDisabled) {
@@ -63580,20 +63684,24 @@ var LookupPicker = React.forwardRef(function (props, ref) {
63580
63684
  }
63581
63685
  };
63582
63686
  var onFocus = function onFocus(e) {
63583
- var _inputRef$current3;
63687
+ var _inputRef$current2;
63688
+ if (scrollBarRef.current) {
63689
+ scrollBarRef.current.scrollTop = scrollBarRef.current.scrollHeight;
63690
+ }
63584
63691
  onInputValueUpdated();
63585
63692
  isShowTooltipRef.current = false;
63586
63693
  setState(styles$N['vitro-focus']);
63587
- setValueListVisible(true);
63588
- (_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 ? void 0 : _inputRef$current3.focus();
63694
+ expandValueList();
63695
+ (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.focus();
63589
63696
  if (props.onFocus) {
63590
63697
  props.onFocus(e);
63591
63698
  }
63592
63699
  };
63593
63700
  var onCollapseButtonClick = function onCollapseButtonClick(valueListVisible) {
63594
- setValueListVisible(!valueListVisible);
63595
- if (!valueListVisible) {
63596
- onInputValueUpdated();
63701
+ if (valueListVisible) {
63702
+ setValueListVisible(false);
63703
+ } else {
63704
+ onFocus(null);
63597
63705
  }
63598
63706
  };
63599
63707
  var getClassName = function getClassName() {
@@ -63634,6 +63742,23 @@ var LookupPicker = React.forwardRef(function (props, ref) {
63634
63742
  });
63635
63743
  }
63636
63744
  };
63745
+ var content = React__default.createElement(React__default.Fragment, null, selectedValueList && selectedValueList.length > 0 && (props.isMultiSelect ? true : inputValue.length === 0) ? React__default.createElement(SelectedValueList, {
63746
+ list: selectedValueList,
63747
+ onOptionValueDelete: onOptionValueDelete,
63748
+ selectedValueTemplate: selectedValueTemplate,
63749
+ isMultiSelect: props.isMultiSelect,
63750
+ isReadOnly: props.isReadOnly,
63751
+ isValueListVisible: valueListVisible,
63752
+ getHtmlValue: getHtmlValue
63753
+ }) : !valueListVisible && props.placeholder && React__default.createElement("div", {
63754
+ className: styles$N['vitro-placeholder']
63755
+ }, props.placeholder), isEditable && React__default.createElement("input", {
63756
+ ref: inputRef,
63757
+ value: inputValue,
63758
+ onKeyDown: onKeyDown,
63759
+ onChange: onChange
63760
+ }), !props.isDisabled && props.children);
63761
+ var isShowButtonClear = props.isShowButtonClear !== false && !props.isMultiSelect && selectedValueList && selectedValueList.length > 0 && isEditable;
63637
63762
  return React__default.createElement("div", {
63638
63763
  className: getClassName(),
63639
63764
  tabIndex: 1,
@@ -63647,36 +63772,27 @@ var LookupPicker = React.forwardRef(function (props, ref) {
63647
63772
  }), React__default.createElement(FlexBox, {
63648
63773
  className: styles$N['vitro-content'],
63649
63774
  ref: contentRef
63650
- }, React__default.createElement(FlexBox, {
63775
+ }, props.isMultiSelect ? React__default.createElement(ScrollBar, {
63776
+ contentClassName: styles$N['vitro-multi-value-container'],
63777
+ onClick: onFocus,
63778
+ ref: scrollBarRef
63779
+ }, content) : React__default.createElement(FlexBox, {
63651
63780
  className: styles$N['vitro-value-container'],
63652
63781
  onClick: onFocus
63653
- }, selectedValueList && selectedValueList.length > 0 && (props.isMultiSelect ? true : inputValue.length === 0) ? React__default.createElement(SelectedValueList, {
63654
- list: selectedValueList,
63655
- onOptionValueDelete: onOptionValueDelete,
63656
- selectedValueTemplate: selectedValueTemplate,
63657
- isMultiSelect: props.isMultiSelect,
63658
- isReadOnly: props.isReadOnly,
63659
- isValueListVisible: valueListVisible,
63660
- getHtmlValue: getHtmlValue
63661
- }) : !valueListVisible && React__default.createElement(React__default.Fragment, null, props.placeholder), isEditable && React__default.createElement("input", {
63662
- ref: inputRef,
63663
- value: inputValue,
63664
- onKeyDown: onKeyDown,
63665
- onChange: onChange,
63666
- onFocus: onFocus
63667
- }), !props.isDisabled && props.children), React__default.createElement(RightButtonGroup, {
63782
+ }, content), props.isShowSearchButton || props.filterMinLength == 0 || isShowButtonClear || !isEditable ? React__default.createElement(RightButtonGroup, {
63668
63783
  selectedValueList: selectedValueList,
63669
63784
  isReadOnly: props.isReadOnly,
63670
63785
  isEditable: isEditable,
63671
- isShowButtonClear: props.isShowButtonClear !== false && !props.isMultiSelect && selectedValueList && selectedValueList.length > 0 && isEditable,
63786
+ isShowButtonClear: isShowButtonClear,
63672
63787
  isValueListVisible: valueListVisible,
63673
63788
  isShowExpandButton: props.filterMinLength == 0,
63674
63789
  isShowSearchButton: props.isShowSearchButton,
63675
63790
  onClickSearchButton: onSearch,
63676
63791
  onOptionValueDelete: onOptionValueDelete,
63677
63792
  onCollapseButtonClick: onCollapseButtonClick,
63678
- selectedValueTemplate: props.selectedValueTemplate
63679
- })), isEditable && (!props.filterMinLength || props.filterMinLength <= inputValue.length) && React__default.createElement(ValueList, {
63793
+ selectedValueTemplate: props.selectedValueTemplate,
63794
+ ref: rightButtonGroupRef
63795
+ }) : null), isEditable && (!props.filterMinLength || props.filterMinLength <= inputValue.length) && React__default.createElement(ValueList, {
63680
63796
  isPending: pending,
63681
63797
  inputValue: inputValue,
63682
63798
  list: filteredValueList,
@@ -63689,7 +63805,9 @@ var LookupPicker = React.forwardRef(function (props, ref) {
63689
63805
  emptyPlaceholder: props.emptyPlaceholder || localeService.create(LOCALE$6.PLACEHOLDER_EMPTY),
63690
63806
  getHtmlValue: getHtmlValue,
63691
63807
  placement: props.dropdownPlacement,
63692
- button: props.valueListButton
63808
+ allowedAutoPlacements: props.dropdownAllowedAutoPlacements,
63809
+ button: props.valueListButton,
63810
+ isFullWidth: props.isValueListFullWidth
63693
63811
  }), props.errorMessage && React__default.createElement(ErrorMessage, {
63694
63812
  text: props.errorMessage,
63695
63813
  className: styles$N['vitro-error-message']
@@ -63807,7 +63925,7 @@ var BaseLookupPicker = function BaseLookupPicker(props) {
63807
63925
  var _exit = false;
63808
63926
  var _temp2 = function () {
63809
63927
  if (data.list) {
63810
- return Promise.resolve(itemSelectDialogService.show(data.list, undefined, isMultiSelect, undefined, {
63928
+ return Promise.resolve(itemSelectDialogService.show(data.list, undefined, isMultiSelect, undefined, false, {
63811
63929
  isShowSelection: isMultiSelect
63812
63930
  })).then(function (itemIdList) {
63813
63931
  if (itemIdList && itemIdList.length) {
@@ -65589,7 +65707,8 @@ var CriterionFilter = function CriterionFilter(props) {
65589
65707
  selectedValueTemplate: function selectedValueTemplate(value) {
65590
65708
  return value.name;
65591
65709
  },
65592
- valueList: getContentTypeList()
65710
+ valueList: getContentTypeList(),
65711
+ isMultiSelect: true
65593
65712
  }));
65594
65713
  }
65595
65714
  }, {
@@ -65597,7 +65716,8 @@ var CriterionFilter = function CriterionFilter(props) {
65597
65716
  value: function value(props) {
65598
65717
  var _props$id;
65599
65718
  return React__default.createElement(UserLookupPicker$1, Object.assign({}, props, {
65600
- id: (_props$id = props.id) === null || _props$id === void 0 ? void 0 : _props$id.split(CTRL.DOT)[0]
65719
+ id: (_props$id = props.id) === null || _props$id === void 0 ? void 0 : _props$id.split(CTRL.DOT)[0],
65720
+ isMultiSelect: true
65601
65721
  }));
65602
65722
  }
65603
65723
  }];
@@ -66071,7 +66191,7 @@ var SortFilter = function SortFilter(props) {
66071
66191
  isClearChangedFieldValueMap: true
66072
66192
  }) : CTRL.EMPTY, React__default.createElement("div", {
66073
66193
  className: CSS_CLASS_ADD_FIELD
66074
- }, React__default.createElement(Button$2, {
66194
+ }, React__default.createElement(Button$1, {
66075
66195
  ref: addFieldButtonRef,
66076
66196
  text: props.labelAddField,
66077
66197
  onClick: onAddSortField,
@@ -66227,7 +66347,7 @@ var SearchDialog = function SearchDialog(props) {
66227
66347
  }, React__default.createElement(ButtonCancel, {
66228
66348
  text: getSearchLabel(ACTION$2.CANCEL),
66229
66349
  onClick: props.onCancel
66230
- }), React__default.createElement(Button$2, {
66350
+ }), React__default.createElement(Button$1, {
66231
66351
  text: getSearchLabel(ACTION$2.SEARCH),
66232
66352
  onClick: props.onSearch,
66233
66353
  className: STYLE.PRIMARY
@@ -66254,7 +66374,7 @@ var styles$W = {"vitro-search":"_search_vitro-search_QkJksC_","vitro-active":"_s
66254
66374
 
66255
66375
  var CONDITION_CONTAINS = 11;
66256
66376
  var CSS_CLASS_ACTIVE$1 = 'vitro-active';
66257
- var Search = function Search(props) {
66377
+ var Search = React.forwardRef(function (props, ref) {
66258
66378
  var _useState = React.useState(false),
66259
66379
  isShowDialog = _useState[0],
66260
66380
  setIsShowDialog = _useState[1];
@@ -66275,12 +66395,20 @@ var Search = function Search(props) {
66275
66395
  setSendedSearchCriterionList = _useState6[1];
66276
66396
  var searchInputRef = React.useRef(null);
66277
66397
  var searchRef = React.useRef(null);
66398
+ var destinationRef = React.useRef(props.destination);
66278
66399
  var eventService = inversifyReact.useInjection(SERVICE.EVENT);
66279
66400
  var localeService = inversifyReact.useInjection(SERVICE.LOCALE);
66280
66401
  var columnService = inversifyReact.useInjection(SERVICE.COLUMN);
66281
66402
  var guidService = inversifyReact.useInjection(SERVICE.GUID);
66282
66403
  var inputPlaceholder = localeService.create(LOCALE$8.SEARCH_INPUT_PLACEHOLDER);
66283
66404
  var defaultSearchFieldName = FIELD$1.NAME;
66405
+ React.useImperativeHandle(ref, function () {
66406
+ return {
66407
+ setDestination: function setDestination(destination) {
66408
+ destinationRef.current = destination;
66409
+ }
66410
+ };
66411
+ });
66284
66412
  React.useEffect(function () {
66285
66413
  if (props.searchCriterionList) {
66286
66414
  setSearchCriterionList(props.searchCriterionList);
@@ -66317,7 +66445,7 @@ var Search = function Search(props) {
66317
66445
  eventService.send(exports.EVENT.SEARCH, {
66318
66446
  searchCriterionList: list,
66319
66447
  source: props.id,
66320
- destination: props.destination
66448
+ destination: destinationRef.current
66321
66449
  });
66322
66450
  }
66323
66451
  }, [props.parentId]);
@@ -66430,7 +66558,7 @@ var Search = function Search(props) {
66430
66558
  eventService.send(exports.EVENT.SEARCH, {
66431
66559
  searchCriterionList: null,
66432
66560
  source: props.id,
66433
- destination: props.destination
66561
+ destination: destinationRef.current
66434
66562
  });
66435
66563
  };
66436
66564
  var getInputCriterionList = function getInputCriterionList(value) {
@@ -66483,7 +66611,7 @@ var Search = function Search(props) {
66483
66611
  eventService.send(exports.EVENT.SEARCH, {
66484
66612
  searchCriterionList: list,
66485
66613
  source: props.id,
66486
- destination: props.destination
66614
+ destination: destinationRef.current
66487
66615
  });
66488
66616
  };
66489
66617
  return React__default.createElement("div", {
@@ -66519,7 +66647,7 @@ var Search = function Search(props) {
66519
66647
  setSearchCriterionList: setSearchCriterionList,
66520
66648
  searchRef: searchRef
66521
66649
  }));
66522
- };
66650
+ });
66523
66651
 
66524
66652
  var styles$X = {"vitro-viewer-issue-list":"_viewer-issue-list_vitro-viewer-issue-list_NgsIC86","vitro-search-wrap":"_viewer-issue-list_vitro-search-wrap_1relfMg","vitro-issue-list-wrap":"_viewer-issue-list_vitro-issue-list-wrap_jT8ou5P"};
66525
66653
 
@@ -66605,7 +66733,7 @@ var ViewerIssueList = function ViewerIssueList(props) {
66605
66733
  window.dispatchEvent(event);
66606
66734
  });
66607
66735
  };
66608
- var onRefresh = function onRefresh(e) {
66736
+ var onRefresh = function onRefresh() {
66609
66737
  props.getIssueList(searchCriterionList).then(function (list) {
66610
66738
  setIssueList(list);
66611
66739
  });
@@ -66633,6 +66761,7 @@ var ViewerIssueList = function ViewerIssueList(props) {
66633
66761
  className: styles$X[CSS_CLASS_ISSUE_LIST]
66634
66762
  }, issueList === null || issueList === void 0 ? void 0 : issueList.map(function (issue) {
66635
66763
  return React__default.createElement(IssueTile, Object.assign({}, issue, {
66764
+ key: issue.id,
66636
66765
  isActive: selectedItemId && issue.id === selectedItemId,
66637
66766
  onClick: function onClick() {
66638
66767
  return onIssueTileClick(issue);
@@ -66645,11 +66774,13 @@ var ViewerIssueList = function ViewerIssueList(props) {
66645
66774
  };
66646
66775
 
66647
66776
  var w$6 = window;
66777
+ var LOCALE_DATE_TIME = 'app.common.dateTime';
66648
66778
  var CSS_CLASS_SIDEBAR_CONTENT = 'body__sidebar-content';
66649
66779
  var ID_VIEWER_CONTAINER = 'viewerContainer';
66650
66780
  var ID_FILE_VERSION_SELECT = 'fileVersionSelect';
66651
66781
  var EVENT_PAGE_RENDERED = 'webViewerPageRendered';
66652
66782
  var Viewer = function Viewer(props) {
66783
+ var localeService = inversifyReact.useInjection(SERVICE.LOCALE);
66653
66784
  React.useEffect(function () {
66654
66785
  if (props.context.file) {
66655
66786
  init();
@@ -66660,7 +66791,8 @@ var Viewer = function Viewer(props) {
66660
66791
  if (w$6.initPdfViewer) {
66661
66792
  initSearchCriterionList();
66662
66793
  var context = _extends({}, props.context, {
66663
- initIssueList: initIssueList
66794
+ initIssueList: initIssueList,
66795
+ getDateText: getDateText
66664
66796
  });
66665
66797
  w$6.initPdfViewer(context);
66666
66798
  initFileVersionSelect();
@@ -66750,11 +66882,16 @@ var Viewer = function Viewer(props) {
66750
66882
  });
66751
66883
  reactDom.render(select, selectContainer);
66752
66884
  };
66885
+ var getDateText = function getDateText(date) {
66886
+ return localeService.create(LOCALE_DATE_TIME, {
66887
+ date: date
66888
+ });
66889
+ };
66753
66890
  return React__default.createElement(React__default.Fragment, null);
66754
66891
  };
66755
66892
 
66756
66893
  var name = "@vitrosoftware/common-ui-ts";
66757
- var version$1 = "1.1.227";
66894
+ var version$1 = "1.1.229";
66758
66895
  var description = "vitro software common ui ts";
66759
66896
  var author = "";
66760
66897
  var license = "MIT";
@@ -67056,7 +67193,7 @@ var styles$12 = {"vitro-submit-button":"_login-submit-button_vitro-submit-button
67056
67193
 
67057
67194
  var LoginSubmitButton = function LoginSubmitButton(props) {
67058
67195
  var localeService = inversifyReact.useInjection(SERVICE.LOCALE);
67059
- return React__default.createElement(Button$2, {
67196
+ return React__default.createElement(Button$1, {
67060
67197
  className: STYLE.PRIMARY + CTRL.SPACE + styles$12['vitro-submit-button'] + (props.className ? CTRL.SPACE + props.className : CTRL.EMPTY),
67061
67198
  text: localeService.create(LOCALE$9.ACTION_LOGIN),
67062
67199
  onClick: props.onClick,
@@ -67223,7 +67360,7 @@ var LoginForm = React.forwardRef(function (props, ref) {
67223
67360
  }, localeService.create(LOCALE$9.LOGIN_FORM_SEPARATOR_TEXT)), React__default.createElement("div", {
67224
67361
  className: styles$14['vitro-button-list']
67225
67362
  }, props.buttonList.map(function (button) {
67226
- return React__default.createElement(Button$2, Object.assign({}, button, {
67363
+ return React__default.createElement(Button$1, Object.assign({}, button, {
67227
67364
  className: styles$14['vitro-button']
67228
67365
  }));
67229
67366
  }))) : React__default.createElement(React__default.Fragment, null), props.onRegister && React__default.createElement(Link, {
@@ -67418,7 +67555,7 @@ var CommandMenu = React.forwardRef(function (props, ref) {
67418
67555
  var styles$19 = {"vitro-command-menu-button":"_command-menu-button_vitro-command-menu-button_2IiXVbP","vitro-image":"_command-menu-button_vitro-image_27yILgG"};
67419
67556
 
67420
67557
  var CommandMenuButton = function CommandMenuButton(props) {
67421
- return React__default.createElement("li", null, React__default.createElement(Button$2, Object.assign({}, props, {
67558
+ return React__default.createElement("li", null, React__default.createElement(Button$1, Object.assign({}, props, {
67422
67559
  className: styles$19['vitro-command-menu-button'] + CTRL.SPACE + (props.className ? props.className : STYLE.LIGHT)
67423
67560
  })));
67424
67561
  };
@@ -68161,7 +68298,7 @@ var AlertConstants = {
68161
68298
  get TYPE () { return TYPE$2; }
68162
68299
  };
68163
68300
 
68164
- var styles$1h = {"vitro-alert":"_alert_vitro-alert_3sPAkJb","vitro-position-absolute":"_alert_vitro-position-absolute_2A33Lq4","vitro-alert-content":"_alert_vitro-alert-content_10fW1n4","vitro-button-close":"_alert_vitro-button-close_39K9cqW","vitro-icon":"_alert_vitro-icon_pK385gF","vitro-text":"_alert_vitro-text_37Erxqj","vitro-alert-action-list":"_alert_vitro-alert-action-list_2XzbaCO","vitro-position-center":"_alert_vitro-position-center_1r_lK_e"};
68301
+ var styles$1h = {"vitro-alert":"_alert_vitro-alert_3sPAkJb","vitro-position-absolute":"_alert_vitro-position-absolute_2A33Lq4","vitro-alert-content":"_alert_vitro-alert-content_10fW1n4","vitro-button-close":"_alert_vitro-button-close_39K9cqW","vitro-icon":"_alert_vitro-icon_pK385gF","vitro-text":"_alert_vitro-text_37Erxqj","vitro-position-center":"_alert_vitro-position-center_1r_lK_e","vitro-content-container":"_alert_vitro-content-container_M2-akFp"};
68165
68302
 
68166
68303
  var TYPE_DANGER = 'danger';
68167
68304
  var Alert$1 = function Alert(props) {
@@ -68171,12 +68308,6 @@ var Alert$1 = function Alert(props) {
68171
68308
  ref.current.focus();
68172
68309
  }
68173
68310
  }, [props]);
68174
- var actionOnClick = function actionOnClick(action) {
68175
- if (action) {
68176
- action();
68177
- }
68178
- props.setMessage(null);
68179
- };
68180
68311
  var onClose = function onClose() {
68181
68312
  if (props.onClose) {
68182
68313
  props.onClose();
@@ -68193,16 +68324,6 @@ var Alert$1 = function Alert(props) {
68193
68324
  }, 100);
68194
68325
  }
68195
68326
  };
68196
- var actionList = props.actionList && React__default.createElement("div", {
68197
- className: styles$1h['vitro-alert-action-list']
68198
- }, props.actionList.map(function (a) {
68199
- return React__default.createElement(Button$1, {
68200
- key: a.text,
68201
- onClick: function onClick() {
68202
- return actionOnClick(a.onClick);
68203
- }
68204
- }, a.text);
68205
- }));
68206
68327
  var className = [styles$1h['vitro-alert'], props.isPositionCenter ? styles$1h['vitro-position-center'] : CTRL.EMPTY, props.isPositionAbsolute ? styles$1h['vitro-position-absolute'] : CTRL.EMPTY, props.className || CTRL.EMPTY].join(CTRL.SPACE);
68207
68328
  return React__default.createElement("div", {
68208
68329
  tabIndex: 1,
@@ -68216,12 +68337,15 @@ var Alert$1 = function Alert(props) {
68216
68337
  className: styles$1h['vitro-alert-content']
68217
68338
  }, React__default.createElement("div", {
68218
68339
  className: styles$1h['vitro-icon']
68219
- }), React__default.createElement("div", {
68340
+ }), React__default.createElement(FlexBox, {
68341
+ className: styles$1h['vitro-content-container'],
68342
+ isColumn: true
68343
+ }, (props.title || props.text) && React__default.createElement("div", {
68220
68344
  className: styles$1h['vitro-text']
68221
- }, props.title && React__default.createElement("strong", null, props.title), props.text, !props.text && props.children), !props.isMultiline && actionList, props.isDismissible && React__default.createElement("div", {
68345
+ }, props.title && React__default.createElement("strong", null, props.title), props.text), props.children), props.isDismissible && React__default.createElement("div", {
68222
68346
  className: styles$1h['vitro-button-close'],
68223
68347
  onClick: onClose
68224
- })), props.text && props.children, props.isMultiline && actionList));
68348
+ }))));
68225
68349
  };
68226
68350
 
68227
68351
  var styles$1i = {"vitro-user-profile":"_user-profile_vitro-user-profile_11XpBoQ","vitro-dropdown-item":"_user-profile_vitro-dropdown-item_dSErsta","vitro-avatar":"_user-profile_vitro-avatar_3SzDPAi"};
@@ -82548,7 +82672,8 @@ var File = function File(props) {
82548
82672
  isColumn: true
82549
82673
  }, props.actionList && props.actionList.length ? React__default.createElement(DropdownButton, {
82550
82674
  itemList: props.actionList,
82551
- className: styles$1k['vitro-dropdown-button']
82675
+ containerClassName: styles$1k['vitro-dropdown-button'],
82676
+ className: STYLE$1.CONTEXT
82552
82677
  }) : null, props.preview && React__default.createElement(Tooltip$1, {
82553
82678
  placement: PLACEMENT.TOP,
82554
82679
  text: props.tooltip || CTRL.EMPTY
@@ -83137,7 +83262,6 @@ var EditableFieldIterator = function EditableFieldIterator(props) {
83137
83262
  changedFieldValueMap: changedFieldValueMap,
83138
83263
  componentMap: componentMap,
83139
83264
  onChange: onChange,
83140
- isVisibleOverflow: true,
83141
83265
  className: styles$1r['vitro-field-iterator']
83142
83266
  }) : React__default.createElement(ScrollBar, {
83143
83267
  className: styles$1r['vitro-scrollbar']
@@ -83147,7 +83271,6 @@ var EditableFieldIterator = function EditableFieldIterator(props) {
83147
83271
  changedFieldValueMap: changedFieldValueMap,
83148
83272
  componentMap: componentMap,
83149
83273
  onChange: onChange,
83150
- isVisibleOverflow: true,
83151
83274
  className: styles$1r['vitro-field-iterator']
83152
83275
  })));
83153
83276
  };
@@ -83309,6 +83432,9 @@ var Viewer$1 = function Viewer(props) {
83309
83432
  });
83310
83433
  w$9.initBimViewer(context);
83311
83434
  initFileVersionSelect();
83435
+ if (props.onLoaded) {
83436
+ props.onLoaded();
83437
+ }
83312
83438
  } else {
83313
83439
  setTimeout(initViewer, 100);
83314
83440
  }
@@ -83415,7 +83541,8 @@ var BimViewer = function BimViewer(props) {
83415
83541
  return React__default.createElement(Progress, null);
83416
83542
  }
83417
83543
  return React__default.createElement(Viewer$1, {
83418
- context: props.context
83544
+ context: props.context,
83545
+ onLoaded: props.onLoaded
83419
83546
  });
83420
83547
  };
83421
83548
 
@@ -84389,6 +84516,9 @@ var Viewer$2 = function Viewer(props) {
84389
84516
  w$a.initDxfViewer(context);
84390
84517
  initFileVersionSelect();
84391
84518
  initThumbnailList(context);
84519
+ if (props.onLoaded) {
84520
+ props.onLoaded();
84521
+ }
84392
84522
  } else {
84393
84523
  setTimeout(initViewer, 100);
84394
84524
  }
@@ -84545,11 +84675,12 @@ var DxfViewer = function DxfViewer(props) {
84545
84675
  return React__default.createElement(Progress, null);
84546
84676
  }
84547
84677
  return React__default.createElement(Viewer$2, {
84548
- context: props.context
84678
+ context: props.context,
84679
+ onLoaded: props.onLoaded
84549
84680
  });
84550
84681
  };
84551
84682
 
84552
- var styles$1O = {"vitro-select":"_select_vitro-select_EObExkL","vitro-active":"_select_vitro-active_3I2oZ9Y","vitro-label":"_select_vitro-label_1sD79dR","vitro-list-container":"_select_vitro-list-container_1iaPtG5","vitro-item":"_select_vitro-item_3Q88bWt"};
84683
+ var styles$1O = {"vitro-select":"_select_vitro-select_EObExkL","vitro-active":"_select_vitro-active_3I2oZ9Y","vitro-label":"_select_vitro-label_1sD79dR","vitro-list-container":"_select_vitro-list-container_1iaPtG5","vitro-expanded":"_select_vitro-expanded_1_6Vcpy","vitro-item":"_select_vitro-item_3Q88bWt","vitro-scrollbar":"_select_vitro-scrollbar_1T9-kjS"};
84553
84684
 
84554
84685
  var Select = function Select(props) {
84555
84686
  var _useState = React.useState(null),
@@ -84613,13 +84744,15 @@ var Select = function Select(props) {
84613
84744
  text: props.label,
84614
84745
  className: styles$1O['vitro-label']
84615
84746
  }), React__default.createElement(itemTemplate, value), React__default.createElement("div", {
84616
- className: styles$1O['vitro-list-container'],
84747
+ className: styles$1O['vitro-list-container'] + (isExpanded ? CTRL.SPACE + styles$1O['vitro-expanded'] : CTRL.EMPTY),
84617
84748
  ref: listRef
84749
+ }, React__default.createElement(ScrollBar, {
84750
+ className: styles$1O['vitro-scrollbar']
84618
84751
  }, React__default.createElement(List$1, {
84619
84752
  itemList: props.itemList,
84620
84753
  onClick: onClick,
84621
84754
  itemTemplate: itemTemplate
84622
- })));
84755
+ }))));
84623
84756
  };
84624
84757
 
84625
84758
  var styles$1P = {"vitro-switch":"_switch_vitro-switch_1noCcra","vitro-slider":"_switch_vitro-slider_3wesxda","vitro-active":"_switch_vitro-active_3LJI9TW"};
@@ -84773,6 +84906,7 @@ var EditableList = function EditableList(props) {
84773
84906
  return new Map();
84774
84907
  }, []);
84775
84908
  React.useEffect(function () {
84909
+ setActiveDropdownItemId(undefined);
84776
84910
  setEditedItem(props.editedItemId || CTRL.EMPTY);
84777
84911
  if (props.editedItemId) {
84778
84912
  var _editedItem = props.itemList.find(function (val) {
@@ -85530,7 +85664,7 @@ var TelerikMediaPlayerServiceImpl = /*#__PURE__*/function () {
85530
85664
  media: {
85531
85665
  title: settings.media.title ? settings.media.title : CTRL.EMPTY,
85532
85666
  source: settings.media.url,
85533
- poster: settings.media.title ? settings.media.title : false
85667
+ poster: settings.media.poster ? settings.media.poster : false
85534
85668
  },
85535
85669
  autoPlay: settings.isAutoPlay === false ? settings.isAutoPlay : true,
85536
85670
  autoRepeat: settings.isAutoRepeat ? settings.isAutoRepeat : false,
@@ -85825,7 +85959,7 @@ var SlideUpButton = function SlideUpButton(props) {
85825
85959
  props.onClick(e);
85826
85960
  }
85827
85961
  };
85828
- return React__default.createElement(React__default.Fragment, null, React__default.createElement(Button$2, {
85962
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(Button$1, {
85829
85963
  onClick: onClick,
85830
85964
  text: CTRL.EMPTY,
85831
85965
  imageUrl: props.imageUrl,
@@ -85863,7 +85997,7 @@ exports.BUTTON = ButtonConstants;
85863
85997
  exports.BimViewer = BimViewer;
85864
85998
  exports.BottomAlignControlGroup = BottomAlignControlGroup;
85865
85999
  exports.Breadcrumbs = Breadcrumbs;
85866
- exports.Button = Button$2;
86000
+ exports.Button = Button$1;
85867
86001
  exports.ButtonCancel = ButtonCancel;
85868
86002
  exports.ButtonGroup = ButtonGroup;
85869
86003
  exports.CONTROL = CONTROL;