@vitrosoftware/common-ui-ts 1.1.35 → 1.1.37

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 (33) hide show
  1. package/css/std/controls/action-handler/action-handler.css +1 -0
  2. package/css/std/controls/button/button.css +1 -1
  3. package/css/std/controls/criterion/criterion.css +217 -0
  4. package/css/std/controls/dropdown-button/dropdown-button.css +0 -2
  5. package/css/std/controls/field-iterator/field-iterator.css +17 -0
  6. package/css/std/controls/lookup-picker/lookup-picker-selected-item.css +37 -1
  7. package/css/std/controls/lookup-picker/lookup-picker-value-list.css +1 -1
  8. package/css/std/controls/search/checkbox-list.css +23 -0
  9. package/css/std/controls/search/input.css +93 -0
  10. package/css/std/controls/search/search.css +76 -0
  11. package/css/std/controls/tab-group/tab-group.css +1 -1
  12. package/css/std/controls/uploader/uploader.css +1 -1
  13. package/dist/constants/Event.d.ts +1 -0
  14. package/dist/controls/Criterion/ConditionSelect.d.ts +13 -0
  15. package/dist/controls/Criterion/Criterion.d.ts +27 -0
  16. package/dist/controls/DropdownButton/DropdownButton.d.ts +3 -2
  17. package/dist/controls/FieldIterator/FieldIterator.d.ts +22 -0
  18. package/dist/controls/Search/CheckboxList.d.ts +12 -0
  19. package/dist/controls/Search/Filter.d.ts +25 -0
  20. package/dist/controls/Search/Input.d.ts +16 -0
  21. package/dist/controls/Search/Search.d.ts +32 -0
  22. package/dist/controls/Search/SearchConstants.d.ts +4 -0
  23. package/dist/controls/Search/SearchCriterion.d.ts +7 -0
  24. package/dist/controls/Sidebar/LinkItem.d.ts +1 -0
  25. package/dist/controls/TableView/TableView.d.ts +3 -0
  26. package/dist/controls/TableView/TableViewConstants.d.ts +4 -0
  27. package/dist/controls/TableView/TableViewContext.d.ts +3 -0
  28. package/dist/controls/TableView/TreeGridTableViewContextImpl.d.ts +3 -0
  29. package/dist/index.css +481 -8
  30. package/dist/index.d.ts +7 -0
  31. package/dist/index.js +839 -39
  32. package/dist/index.js.map +1 -1
  33. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -150,6 +150,14 @@ var app$1 = {
150
150
  },
151
151
  messageInput: {
152
152
  placeholder: "Добавить комментарий..."
153
+ },
154
+ search: {
155
+ input: {
156
+ more: "ещё {{count}}"
157
+ },
158
+ checkboxList: {
159
+ emptyPlaceholder: "Нет данных"
160
+ }
153
161
  }
154
162
  }
155
163
  };
@@ -250,6 +258,7 @@ var ScrollBar = function ScrollBar(props) {
250
258
  EVENT["RESIZE"] = "resize";
251
259
  EVENT["DRAGOVER"] = "dragover";
252
260
  EVENT["DRAGLEAVE"] = "dragleave";
261
+ EVENT["CLICK"] = "click";
253
262
  EVENT["HISTORY_UPDATE"] = "vitro.history.update";
254
263
  EVENT["HISTORY_CHANGED"] = "vitro.history.changed";
255
264
  EVENT["DROP"] = "drop";
@@ -20430,6 +20439,37 @@ function _objectWithoutPropertiesLoose(source, excluded) {
20430
20439
  }
20431
20440
  return target;
20432
20441
  }
20442
+ function _unsupportedIterableToArray(o, minLen) {
20443
+ if (!o) return;
20444
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
20445
+ var n = Object.prototype.toString.call(o).slice(8, -1);
20446
+ if (n === "Object" && o.constructor) n = o.constructor.name;
20447
+ if (n === "Map" || n === "Set") return Array.from(o);
20448
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
20449
+ }
20450
+ function _arrayLikeToArray(arr, len) {
20451
+ if (len == null || len > arr.length) len = arr.length;
20452
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
20453
+ return arr2;
20454
+ }
20455
+ function _createForOfIteratorHelperLoose(o, allowArrayLike) {
20456
+ var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
20457
+ if (it) return (it = it.call(o)).next.bind(it);
20458
+ if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
20459
+ if (it) o = it;
20460
+ var i = 0;
20461
+ return function () {
20462
+ if (i >= o.length) return {
20463
+ done: true
20464
+ };
20465
+ return {
20466
+ done: false,
20467
+ value: o[i++]
20468
+ };
20469
+ };
20470
+ }
20471
+ throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
20472
+ }
20433
20473
  function _toPrimitive(input, hint) {
20434
20474
  if (typeof input !== "object" || input === null) return input;
20435
20475
  var prim = input[Symbol.toPrimitive];
@@ -20857,6 +20897,11 @@ var SECTION;
20857
20897
  SECTION["HEADER"] = "Header";
20858
20898
  SECTION["SPACE"] = "Space";
20859
20899
  })(SECTION || (SECTION = {}));
20900
+ var OPERATOR;
20901
+ (function (OPERATOR) {
20902
+ OPERATOR[OPERATOR["AND"] = 0] = "AND";
20903
+ OPERATOR[OPERATOR["OR"] = 1] = "OR";
20904
+ })(OPERATOR || (OPERATOR = {}));
20860
20905
 
20861
20906
  var TableViewConstants = {
20862
20907
  __proto__: null,
@@ -20876,7 +20921,8 @@ var TableViewConstants = {
20876
20921
  get ROW_ID () { return ROW_ID; },
20877
20922
  get NUMBER_FORMAT () { return NUMBER_FORMAT; },
20878
20923
  get ACTION () { return ACTION; },
20879
- get SECTION () { return SECTION; }
20924
+ get SECTION () { return SECTION; },
20925
+ get OPERATOR () { return OPERATOR; }
20880
20926
  };
20881
20927
 
20882
20928
  var styles$4 = {"vitro-table-view":"_table-view_vitro-table-view_1tTs32D"};
@@ -20898,25 +20944,40 @@ var TreeGrid = function TreeGrid(props) {
20898
20944
  }
20899
20945
  }
20900
20946
  };
20947
+ var initData = function initData(data, value) {
20948
+ if (data.indexOf('<B') === -1) {
20949
+ var configStartTag = '</Grid>';
20950
+ var insertIndex = data.indexOf(configStartTag);
20951
+ data = data.slice(0, insertIndex) + ("<B>" + value + "</B>") + data.slice(insertIndex);
20952
+ } else {
20953
+ var _configStartTag = '<B ';
20954
+ var _insertIndex = data.indexOf(_configStartTag) + _configStartTag.length;
20955
+ data = data.slice(0, _insertIndex) + value + CTRL.SPACE + data.slice(_insertIndex);
20956
+ }
20957
+ return data;
20958
+ };
20901
20959
  var onDataSendHandler = function onDataSendHandler(tableView, source, data) {
20960
+ var newData = data;
20902
20961
  if (tableView.filterOneLevel) {
20903
- if (data.indexOf('<B') === -1) {
20904
- var configStartTag = '</Grid>';
20905
- var insertIndex = data.indexOf(configStartTag);
20906
- data = data.slice(0, insertIndex) + '<B>FilterOneLevel="1"</B>' + data.slice(insertIndex);
20907
- } else {
20908
- var _configStartTag = '<B ';
20909
- var _insertIndex = data.indexOf(_configStartTag) + _configStartTag.length;
20910
- data = data.slice(0, _insertIndex) + 'FilterOneLevel="1" ' + data.slice(_insertIndex);
20911
- }
20962
+ newData = initData(newData, 'FilterOneLevel="1"');
20912
20963
  }
20913
- return data;
20964
+ if (tableView.searchCriterionList && tableView.searchCriterionList.length && tableView.parentId) {
20965
+ var searchCriterionList = JSON.stringify(tableView.searchCriterionList);
20966
+ var parentId = tableView.parentId;
20967
+ var value = "SearchCriterionList='" + searchCriterionList + "' ParentId=\"" + parentId + "\"";
20968
+ newData = initData(data, value);
20969
+ }
20970
+ return newData;
20914
20971
  };
20915
20972
  var onGridLoaded = function onGridLoaded(g, next) {
20916
20973
  var grid = new TreeGridTableViewContextImpl(g);
20917
20974
  if (props.filterOneLevel) {
20918
20975
  grid.filterOneLevel = props.filterOneLevel;
20919
20976
  }
20977
+ if (props.searchCriterionList && props.searchParentId) {
20978
+ grid.searchCriterionList = props.searchCriterionList;
20979
+ grid.parentId = props.searchParentId;
20980
+ }
20920
20981
  if (props.eventHandlerList) {
20921
20982
  props.eventHandlerList.forEach(function (eventHandler) {
20922
20983
  grid.setEventHandler(eventHandler);
@@ -59689,33 +59750,22 @@ var ActionInfo = function ActionInfo(props) {
59689
59750
  return info;
59690
59751
  };
59691
59752
  var getText = function getText() {
59692
- var count = props.itemList.length;
59693
59753
  var successCount = props.successResult ? props.successResult.length : 0;
59694
- var failCount = props.failResult ? props.failResult.length : 0;
59695
59754
  if (props.action === actionMap.progress) {
59696
59755
  return localeService.create(LOCALE$1.PROGRESS_STD, {
59697
- count: count - successCount - failCount,
59698
- itemCount: count
59756
+ actionCode: localeService.create(LOCALE$1.ACTION + CTRL.DOT + props.actionCode)
59699
59757
  });
59700
59758
  }
59701
59759
  if (props.action === actionMap.after) {
59702
59760
  if (props.isSuccess) {
59703
59761
  return localeService.create(LOCALE$1.SUCCESS_STD, {
59704
59762
  count: successCount,
59705
- itemCount: count
59763
+ actionCode: localeService.create(LOCALE$1.ACTION + CTRL.DOT + props.actionCode)
59706
59764
  });
59707
59765
  } else {
59708
- if (successCount) {
59709
- return localeService.create(LOCALE$1.ERROR_STD, {
59710
- count: successCount,
59711
- itemCount: count
59712
- });
59713
- } else {
59714
- return localeService.create(LOCALE$1.ERROR_STD, {
59715
- count: successCount,
59716
- itemCount: count
59717
- });
59718
- }
59766
+ return localeService.create(LOCALE$1.ERROR_STD, {
59767
+ actionCode: localeService.create(LOCALE$1.ACTION + CTRL.DOT + props.actionCode)
59768
+ });
59719
59769
  }
59720
59770
  }
59721
59771
  return CTRL.EMPTY;
@@ -60290,7 +60340,7 @@ var DropdownButton = function DropdownButton(props) {
60290
60340
  className: styles$a['vitro-title']
60291
60341
  }, props.title), React__default.createElement("span", {
60292
60342
  className: styles$a['vitro-dropdown-icon']
60293
- }, props.title)), React__default.createElement(BootstrapDropdown.Menu, {
60343
+ })), React__default.createElement(BootstrapDropdown.Menu, {
60294
60344
  renderOnMount: true,
60295
60345
  flip: props.flip !== false
60296
60346
  }, dropItemList.map(function (x) {
@@ -61279,13 +61329,20 @@ var DatePicker = function DatePicker(props) {
61279
61329
  if (props.maxValue) {
61280
61330
  config.max = props.maxValue;
61281
61331
  }
61332
+ if (config.value) {
61333
+ config.value = new Date(config.value);
61334
+ }
61282
61335
  $$3(ref.current).kendoDatePicker(config);
61283
61336
  var picker = $$3(ref.current).data(componentName);
61284
61337
  picker.enable(!props.isDisabled);
61285
61338
  picker.readonly(props.isReadOnly === true);
61286
61339
  }, [ref]);
61287
61340
  React.useEffect(function () {
61288
- $$3(ref.current).data(componentName).value(props.value);
61341
+ if (props.value) {
61342
+ $$3(ref.current).data(componentName).value(new Date(props.value));
61343
+ } else {
61344
+ $$3(ref.current).data(componentName).value(props.value);
61345
+ }
61289
61346
  }, [props.value]);
61290
61347
  React.useEffect(function () {
61291
61348
  if (props.minValue) $$3(ref.current).data(componentName).min(props.minValue);
@@ -61444,16 +61501,17 @@ var TimePicker = function TimePicker(props) {
61444
61501
  }, props.errorMessage));
61445
61502
  };
61446
61503
 
61447
- var styles$o = {"vitro-selected-item":"_lookup-picker-selected-item_vitro-selected-item_hw-euth"};
61504
+ var styles$o = {"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"};
61448
61505
 
61449
61506
  var htmlValueStyles = {"vitro-item-html-value":"_lookup-picker-html-value_vitro-item-html-value_2QBoTey"};
61450
61507
 
61451
61508
  var SelectedValueList = function SelectedValueList(props) {
61509
+ var className = props.isMultiSelect ? styles$o['vitro-selected-item-multi'] : styles$o['vitro-selected-item'];
61452
61510
  return React__default.createElement(React__default.Fragment, null, props.list.map(function (x) {
61453
61511
  var title = props.selectedValueTemplate(x);
61454
61512
  return React__default.createElement("div", {
61455
61513
  key: x.id,
61456
- className: styles$o['vitro-selected-item'],
61514
+ className: className,
61457
61515
  title: title
61458
61516
  }, props.getHtmlValue && props.getHtmlValue(x) ? React__default.createElement("div", {
61459
61517
  className: htmlValueStyles['vitro-item-html-value']
@@ -61592,8 +61650,8 @@ var LookupPicker = function LookupPicker(props) {
61592
61650
  setSelectedValueList([]);
61593
61651
  }
61594
61652
  }, [props.selectedValue]);
61595
- React.useEffect(function () {
61596
- if (inputValue && inputValue.length && inputValue.length >= props.filterMinLength) {
61653
+ var onInputValueUpdated = function onInputValueUpdated() {
61654
+ if ((inputValue || inputValue === CTRL.EMPTY) && inputValue.length >= props.filterMinLength) {
61597
61655
  if (props.valueList) {
61598
61656
  updateFilteredValueList(props.valueList);
61599
61657
  } else if (props.getValueList) {
@@ -61610,6 +61668,9 @@ var LookupPicker = function LookupPicker(props) {
61610
61668
  });
61611
61669
  }
61612
61670
  }
61671
+ };
61672
+ React.useEffect(function () {
61673
+ onInputValueUpdated();
61613
61674
  }, [inputValue]);
61614
61675
  React.useEffect(function () {
61615
61676
  if (props.valueList && selectedValueList) {
@@ -61713,6 +61774,12 @@ var LookupPicker = function LookupPicker(props) {
61713
61774
  setState(styles$q['vitro-focus']);
61714
61775
  setValueListVisible(true);
61715
61776
  };
61777
+ var onCollapseButtonClick = function onCollapseButtonClick(valueListVisible) {
61778
+ setValueListVisible(!valueListVisible);
61779
+ if (!valueListVisible) {
61780
+ onInputValueUpdated();
61781
+ }
61782
+ };
61716
61783
  var copyValue = function copyValue() {
61717
61784
  navigator.clipboard.writeText(selectedValueList.join(CTRL.COMMA));
61718
61785
  };
@@ -61768,7 +61835,7 @@ var LookupPicker = function LookupPicker(props) {
61768
61835
  }
61769
61836
  }), !props.isDisabled && !props.isReadOnly && React__default.createElement("div", {
61770
61837
  onClick: function onClick() {
61771
- return setValueListVisible(!valueListVisible);
61838
+ return onCollapseButtonClick(valueListVisible);
61772
61839
  },
61773
61840
  className: valueListVisible ? styles$q['vitro-button-collapse-up'] : styles$q['vitro-button-collapse-bottom']
61774
61841
  }), props.isReadOnly ? React__default.createElement("span", {
@@ -63042,12 +63109,12 @@ function _extends$6() { _extends$6 = Object.assign ? Object.assign.bind() : func
63042
63109
  function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
63043
63110
  function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty$2(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
63044
63111
  function _defineProperty$2(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
63045
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
63112
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread(); }
63046
63113
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
63047
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
63114
+ function _unsupportedIterableToArray$1(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$1(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen); }
63048
63115
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
63049
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
63050
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
63116
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray$1(arr); }
63117
+ function _arrayLikeToArray$1(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
63051
63118
  function _objectWithoutProperties$4(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$d(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
63052
63119
  function _objectWithoutPropertiesLoose$d(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
63053
63120
  function _classCallCheck$2(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@@ -63483,7 +63550,7 @@ var LinkItem$1 = function LinkItem(props) {
63483
63550
  var _useState = React.useState(false),
63484
63551
  isHover = _useState[0],
63485
63552
  setIsHover = _useState[1];
63486
- var isActive = props.link === props.currentUrl || props.activeItem === props.id;
63553
+ var isActive = props.link === props.currentUrl || props.activeItem === props.id || props.altUrlList && props.altUrlList.includes(props.currentUrl);
63487
63554
  var className = isActive ? styles$v['vitro-active'] : isHover ? styles$v['vitro-hover'] : CTRL.EMPTY;
63488
63555
  var onClick = function onClick(e) {
63489
63556
  if (props.link) {
@@ -64193,6 +64260,736 @@ var ImagePicker = function ImagePicker(props) {
64193
64260
  }))));
64194
64261
  };
64195
64262
 
64263
+ var styles$J = {"vitro-criterion-container":"_criterion_vitro-criterion-container_2cYcSkL","vitro-block":"_criterion_vitro-block_3E9-RXM","vitro-control":"_criterion_vitro-control_2JLaybj","vitro-label":"_criterion_vitro-label_3F6a8dj","vitro-operator-select-container":"_criterion_vitro-operator-select-container_3OkjzXG","vitro-operator-select":"_criterion_vitro-operator-select_1guNlk9","vitro-operator-list":"_criterion_vitro-operator-list_3A2VZsd","vitro-button-cancel":"_criterion_vitro-button-cancel_2C2G0sL","vitro-focus":"_criterion_vitro-focus_3FNLsoN","vitro-error":"_criterion_vitro-error_3pvFrlW","vitro-condition-select":"_criterion_vitro-condition-select_1hTBBg-","vitro-icon":"_criterion_vitro-icon_1DmS0jh","vitro-condition-list":"_criterion_vitro-condition-list_10UIxJI"};
64264
+
64265
+ var ConditionSelect = function ConditionSelect(props) {
64266
+ var _useState = React.useState(props.itemList[0]),
64267
+ condition = _useState[0],
64268
+ setCondition = _useState[1];
64269
+ var _useState2 = React.useState(false),
64270
+ showSelectList = _useState2[0],
64271
+ setShowSelectList = _useState2[1];
64272
+ var selectRef = React.useRef(null);
64273
+ var listRef = React.useRef(null);
64274
+ React.useEffect(function () {
64275
+ window.addEventListener(exports.EVENT.MOUSEDOWN, onBlur);
64276
+ return function () {
64277
+ window.removeEventListener(exports.EVENT.MOUSEDOWN, onBlur);
64278
+ };
64279
+ });
64280
+ React.useEffect(function () {
64281
+ if (selectRef && selectRef.current) {
64282
+ selectRef.current.style.transform = "translateX(" + props.translateX + "px)";
64283
+ }
64284
+ }, [props.translateX]);
64285
+ React.useEffect(function () {
64286
+ if (listRef && listRef.current) {
64287
+ listRef.current.style.transform = "translateX(" + props.translateX + "px)";
64288
+ }
64289
+ }, [showSelectList]);
64290
+ var toggleSelect = function toggleSelect() {
64291
+ setShowSelectList(!showSelectList);
64292
+ };
64293
+ var _onClick = function onClick(item) {
64294
+ setCondition(item);
64295
+ setShowSelectList(false);
64296
+ props.onSelect(item);
64297
+ };
64298
+ var onBlur = function onBlur(e) {
64299
+ if (listRef.current && !listRef.current.contains(e.target) && selectRef.current && !selectRef.current.contains(e.target)) {
64300
+ setShowSelectList(false);
64301
+ }
64302
+ };
64303
+ return React__default.createElement(React__default.Fragment, null, condition && React__default.createElement("div", {
64304
+ ref: selectRef,
64305
+ className: styles$J['vitro-condition-select']
64306
+ }, React__default.createElement("div", {
64307
+ onClick: toggleSelect
64308
+ }, condition.imageUrl ? React__default.createElement(Icon, {
64309
+ defaultUrl: condition.imageUrl,
64310
+ className: styles$J['vitro-icon']
64311
+ }) : condition.text)), showSelectList && React__default.createElement("ul", {
64312
+ ref: listRef,
64313
+ className: styles$J['vitro-condition-list'],
64314
+ onBlur: onBlur
64315
+ }, props.itemList.map(function (item) {
64316
+ return React__default.createElement("li", {
64317
+ onClick: function onClick() {
64318
+ return _onClick(item);
64319
+ }
64320
+ }, item.imageUrl && React__default.createElement(Icon, {
64321
+ defaultUrl: item.imageUrl,
64322
+ className: styles$J['vitro-icon']
64323
+ }), item.text);
64324
+ })));
64325
+ };
64326
+
64327
+ var Criterion = function Criterion(props) {
64328
+ var _useState = React.useState(props.operatorList.length ? props.operatorList[0] : null),
64329
+ operator = _useState[0],
64330
+ setOperator = _useState[1];
64331
+ var _useState2 = React.useState(false),
64332
+ showOperatorSelectList = _useState2[0],
64333
+ setShowOperatorSelectList = _useState2[1];
64334
+ var _useState3 = React.useState(0),
64335
+ translate = _useState3[0],
64336
+ setTranslate = _useState3[1];
64337
+ var _useState4 = React.useState(CTRL.EMPTY),
64338
+ state = _useState4[0],
64339
+ setState = _useState4[1];
64340
+ var value = React.useMemo(function () {
64341
+ var _props$operatorList$, _props$conditionList$;
64342
+ return {
64343
+ internalName: props.content.props.name,
64344
+ operator: (_props$operatorList$ = props.operatorList[0]) === null || _props$operatorList$ === void 0 ? void 0 : _props$operatorList$.type,
64345
+ valueList: [],
64346
+ condition: (_props$conditionList$ = props.conditionList[0]) === null || _props$conditionList$ === void 0 ? void 0 : _props$conditionList$.type
64347
+ };
64348
+ }, []);
64349
+ var selectRef = React.useRef(null);
64350
+ var labelRef = React.useRef(null);
64351
+ React.useEffect(function () {
64352
+ window.addEventListener(exports.EVENT.CLICK, onBlurSelect);
64353
+ return function () {
64354
+ window.removeEventListener(exports.EVENT.CLICK, onBlurSelect);
64355
+ };
64356
+ }, []);
64357
+ React.useEffect(function () {
64358
+ if (labelRef && labelRef.current) {
64359
+ setTranslate(labelRef.current.offsetWidth + 8);
64360
+ }
64361
+ }, [labelRef]);
64362
+ var onOperatorClick = function onOperatorClick(operator) {
64363
+ setOperator(operator);
64364
+ value.operator = operator.type;
64365
+ onChange(value);
64366
+ };
64367
+ var onBlurSelect = function onBlurSelect(e) {
64368
+ var select = selectRef.current;
64369
+ if (select && e.target !== select && e.target !== select.children.item(0)) {
64370
+ setShowOperatorSelectList(false);
64371
+ }
64372
+ };
64373
+ var toggleOperatorSelect = function toggleOperatorSelect() {
64374
+ setShowOperatorSelectList(!showOperatorSelectList);
64375
+ };
64376
+ var onConditionClick = function onConditionClick(cond) {
64377
+ value.condition = cond.type;
64378
+ onChange(value);
64379
+ };
64380
+ var onFocus = function onFocus(e) {
64381
+ setState(styles$J['vitro-focus']);
64382
+ if (props.content.props.onFocus) {
64383
+ props.content.props.onFocus(e);
64384
+ }
64385
+ };
64386
+ var onBlur = function onBlur(e) {
64387
+ setState(props.content.props.errorMessage ? styles$J['vitro-error'] : CTRL.EMPTY);
64388
+ if (props.content.props.onBlur) {
64389
+ props.content.props.onBlur(e);
64390
+ }
64391
+ };
64392
+ var onChange = function onChange(val) {
64393
+ if (props.onChange) {
64394
+ props.onChange(val, props.content.props.name);
64395
+ }
64396
+ };
64397
+ var onControlChange = function onControlChange(val, name) {
64398
+ value.valueList = Array.isArray(val) ? val : [val];
64399
+ onChange(value);
64400
+ };
64401
+ return React__default.createElement("div", {
64402
+ className: styles$J['vitro-criterion-container']
64403
+ }, React__default.createElement("div", {
64404
+ className: styles$J['vitro-operator-select-container']
64405
+ }, props.isShowOperatorSelect && React__default.createElement("div", {
64406
+ ref: selectRef,
64407
+ className: styles$J['vitro-operator-select'],
64408
+ onClick: toggleOperatorSelect
64409
+ }, React__default.createElement("div", null, operator.text), showOperatorSelectList && React__default.createElement("ul", {
64410
+ className: styles$J['vitro-operator-list']
64411
+ }, props.operatorList.map(function (item) {
64412
+ return React__default.createElement("li", {
64413
+ onClick: function onClick() {
64414
+ return onOperatorClick(item);
64415
+ }
64416
+ }, item.text);
64417
+ })))), React__default.createElement("div", {
64418
+ className: styles$J['vitro-control'] + CTRL.SPACE + state
64419
+ }, React__default.createElement("div", {
64420
+ ref: labelRef,
64421
+ className: styles$J['vitro-label']
64422
+ }, React__default.createElement("span", null, props.label)), React__default.createElement(ConditionSelect, {
64423
+ itemList: props.conditionList,
64424
+ onSelect: onConditionClick,
64425
+ translateX: translate
64426
+ }), React__default.createElement(props.content.component, _extends({}, props.content.props, {
64427
+ className: styles$J['vitro-control'],
64428
+ onBlur: onBlur,
64429
+ onFocus: onFocus,
64430
+ onChange: onControlChange,
64431
+ label: CTRL.EMPTY,
64432
+ isDisabled: false,
64433
+ isReadOnly: false,
64434
+ isRequired: false
64435
+ }))), React__default.createElement("button", {
64436
+ onClick: function onClick() {
64437
+ return props.onDelete(props.content.props.id);
64438
+ },
64439
+ className: styles$J['vitro-button-cancel']
64440
+ }));
64441
+ };
64442
+
64443
+ var LOCALE$8;
64444
+ (function (LOCALE) {
64445
+ LOCALE["INPUT_MORE"] = "app.common.search.input.more";
64446
+ LOCALE["EMPTY_PLACEHOLDER"] = "app.common.search.checkboxList.emptyPlaceholder";
64447
+ })(LOCALE$8 || (LOCALE$8 = {}));
64448
+
64449
+ var styles$K = {"vitro-control":"_input_vitro-control__btu7j_","vitro-active":"_input_vitro-active_jxhGdE8","vitro-focus":"_input_vitro-focus_3tuxmPs","vitro-search-value-list":"_input_vitro-search-value-list_2I_KVY5","vitro-button-cancel":"_input_vitro-button-cancel_YqNZPj-","vitro-button-settings":"_input_vitro-button-settings_1w9FwYt","vitro-search-value":"_input_vitro-search-value_1ZbcNTJ"};
64450
+
64451
+ var Input$1 = function Input(props) {
64452
+ var _useState = React.useState(Boolean(props.isSettingsActive)),
64453
+ isToggled = _useState[0],
64454
+ setIsToggled = _useState[1];
64455
+ var _useState2 = React.useState(false),
64456
+ isActive = _useState2[0],
64457
+ setIsActive = _useState2[1];
64458
+ var _useState3 = React.useState(CTRL.EMPTY),
64459
+ state = _useState3[0],
64460
+ setState = _useState3[1];
64461
+ var localeService = inversifyReact.useInjection(SERVICE.LOCALE);
64462
+ var inputRef = React.useRef(null);
64463
+ React.useEffect(function () {
64464
+ var _props$valueList;
64465
+ if (state || props.textValue || (_props$valueList = props.valueList) !== null && _props$valueList !== void 0 && _props$valueList.length) {
64466
+ setIsActive(true);
64467
+ }
64468
+ }, [state, props.textValue, props.valueList]);
64469
+ React.useEffect(function () {
64470
+ setIsToggled(Boolean(props.isSettingsActive));
64471
+ }, [props.isSettingsActive]);
64472
+ var onSettingsClick = function onSettingsClick() {
64473
+ setIsToggled(!isToggled);
64474
+ if (props.onSettingsClick) {
64475
+ props.onSettingsClick(!isToggled);
64476
+ }
64477
+ };
64478
+ var onKeyDown = function onKeyDown(e) {
64479
+ var value = inputRef.current && inputRef.current.value;
64480
+ if (e.keyCode === 13 && value) {
64481
+ e.preventDefault();
64482
+ props.onEnter();
64483
+ inputRef.current.value = CTRL.EMPTY;
64484
+ }
64485
+ };
64486
+ var onCancel = function onCancel() {
64487
+ setIsActive(false);
64488
+ if (inputRef.current) {
64489
+ inputRef.current.value = CTRL.EMPTY;
64490
+ }
64491
+ props.onCancel();
64492
+ };
64493
+ var onChange = function onChange(e) {
64494
+ if (props.onChange) {
64495
+ props.onChange(e.target.value);
64496
+ }
64497
+ };
64498
+ var getClassName = function getClassName() {
64499
+ var classList = [styles$K['vitro-control'], props.className || CTRL.EMPTY, state];
64500
+ if (isActive) {
64501
+ classList.push(styles$K['vitro-active']);
64502
+ }
64503
+ return classList.join(CTRL.SPACE);
64504
+ };
64505
+ var getValueList = function getValueList(value) {
64506
+ return value.valueList.map(function (x) {
64507
+ if (typeof x === 'object') {
64508
+ if (x instanceof Date) {
64509
+ return x.toLocaleString().split(CTRL.COMMA)[0];
64510
+ }
64511
+ return x.name || x.fieldValueMap.name;
64512
+ } else {
64513
+ return x;
64514
+ }
64515
+ });
64516
+ };
64517
+ var getSelectedValueList = function getSelectedValueList(valueList) {
64518
+ var firstValue = valueList[0];
64519
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
64520
+ className: styles$K['vitro-search-value']
64521
+ }, firstValue.name + CTRL.COLON + CTRL.SPACE, getValueList(firstValue).join(CTRL.COMMA + CTRL.SPACE)), valueList.length && valueList.length > 1 ? React__default.createElement("div", {
64522
+ className: styles$K['vitro-search-value']
64523
+ }, localeService.create(LOCALE$8.INPUT_MORE, {
64524
+ count: valueList.length - 1
64525
+ })) : null);
64526
+ };
64527
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
64528
+ className: getClassName()
64529
+ }, React__default.createElement("div", {
64530
+ className: styles$K['vitro-search-value-list']
64531
+ }, props.valueList && props.valueList.length ? getSelectedValueList(props.valueList) : React__default.createElement("input", {
64532
+ type: 'text',
64533
+ ref: inputRef,
64534
+ onKeyDown: onKeyDown,
64535
+ onChange: onChange,
64536
+ onFocus: function onFocus() {
64537
+ return setState(styles$K['vitro-focus']);
64538
+ },
64539
+ onBlur: function onBlur() {
64540
+ return setState(CTRL.EMPTY);
64541
+ },
64542
+ placeholder: !isActive ? props.placeholder : CTRL.EMPTY
64543
+ })), isActive && React__default.createElement(React__default.Fragment, null, props.isShowSettings && React__default.createElement("button", {
64544
+ onClick: onSettingsClick,
64545
+ className: styles$K['vitro-button-settings'] + (isToggled ? CTRL.SPACE + styles$K['vitro-active'] : CTRL.EMPTY)
64546
+ }), React__default.createElement("button", {
64547
+ onClick: onCancel,
64548
+ className: styles$K['vitro-button-cancel']
64549
+ }))));
64550
+ };
64551
+
64552
+ var FieldIterator = function FieldIterator(props) {
64553
+ var _useState = React.useState([]),
64554
+ controlList = _useState[0],
64555
+ setControlList = _useState[1];
64556
+ var changedFieldValueMap = React.useMemo(function () {
64557
+ return new Map();
64558
+ }, []);
64559
+ var saveStatus = React.useMemo(function () {
64560
+ return {
64561
+ isSaving: false
64562
+ };
64563
+ }, []);
64564
+ React.useEffect(function () {
64565
+ saveStatus.isSaving = false;
64566
+ if (props.fieldList && props.fieldList.length) {
64567
+ if (props.isClearChangedFieldValueMap) {
64568
+ changedFieldValueMap.clear();
64569
+ }
64570
+ if (props.changedFieldValueMap) {
64571
+ for (var _i = 0, _Object$entries = Object.entries(props.changedFieldValueMap); _i < _Object$entries.length; _i++) {
64572
+ var _Object$entries$_i = _Object$entries[_i],
64573
+ key = _Object$entries$_i[0],
64574
+ value = _Object$entries$_i[1];
64575
+ changedFieldValueMap.set(key, value);
64576
+ }
64577
+ }
64578
+ createControlList();
64579
+ } else {
64580
+ setControlList([]);
64581
+ }
64582
+ }, [props.fieldList]);
64583
+ React.useEffect(function () {
64584
+ updateControlList();
64585
+ }, [props.fieldValueMap, props.fieldList]);
64586
+ React.useEffect(function () {
64587
+ setErrorMessage();
64588
+ }, [props.errorControlList]);
64589
+ var updateControlList = function updateControlList() {
64590
+ if (props.fieldValueMap) {
64591
+ var _loop = function _loop() {
64592
+ var _Object$entries2$_i = _Object$entries2[_i2],
64593
+ key = _Object$entries2$_i[0],
64594
+ value = _Object$entries2$_i[1];
64595
+ setControlList(function (prevState) {
64596
+ return prevState.map(function (control) {
64597
+ return control.name === key && control.value !== value ? _extends({}, control, {
64598
+ value: value
64599
+ }) : control;
64600
+ });
64601
+ });
64602
+ };
64603
+ for (var _i2 = 0, _Object$entries2 = Object.entries(props.fieldValueMap); _i2 < _Object$entries2.length; _i2++) {
64604
+ _loop();
64605
+ }
64606
+ }
64607
+ };
64608
+ var isControlRow = function isControlRow(controlName) {
64609
+ if (props.rowFieldList) {
64610
+ return props.rowFieldList.includes(controlName);
64611
+ }
64612
+ return false;
64613
+ };
64614
+ var createBaseControl = function createBaseControl(field) {
64615
+ var _field$fieldValueMap;
64616
+ var control = {
64617
+ id: field.id,
64618
+ label: field.name,
64619
+ name: field.internalName,
64620
+ key: field.internalName,
64621
+ code: field.component ? field.component : field.fieldType.reactComponent,
64622
+ isRequired: field.isRequired,
64623
+ isReadOnly: field.isReadOnly,
64624
+ isDisabled: field.isDisabled,
64625
+ data: field.fieldValueMap,
64626
+ errorMessage: null,
64627
+ isAutoComplete: false,
64628
+ multiline: (_field$fieldValueMap = field.fieldValueMap) === null || _field$fieldValueMap === void 0 ? void 0 : _field$fieldValueMap.multiline,
64629
+ onChange: function onChange(value, name) {
64630
+ return onChangeControl(value, name);
64631
+ },
64632
+ isRow: isControlRow(field.internalName)
64633
+ };
64634
+ return control;
64635
+ };
64636
+ var onChangeControl = function onChangeControl(value, fieldName) {
64637
+ setControlList(function (prevState) {
64638
+ return setControlValue(prevState, value, fieldName);
64639
+ });
64640
+ changedFieldValueMap.set(fieldName, value);
64641
+ props.onChange(changedFieldValueMap, saveStatus);
64642
+ };
64643
+ var setControlValue = function setControlValue(controlList, val, fieldName) {
64644
+ return controlList.map(function (field) {
64645
+ if (field.name === fieldName) {
64646
+ return _extends({}, field, {
64647
+ value: val
64648
+ });
64649
+ }
64650
+ return field;
64651
+ });
64652
+ };
64653
+ var createControlList = function createControlList() {
64654
+ var controlList = [];
64655
+ props.fieldList.forEach(function (field) {
64656
+ var control = createBaseControl(field);
64657
+ if (control.name) {
64658
+ controlList.push(control);
64659
+ }
64660
+ });
64661
+ setControlList(controlList);
64662
+ };
64663
+ var setErrorMessage = function setErrorMessage() {
64664
+ setControlList(function (prevState) {
64665
+ return prevState.map(function (control) {
64666
+ var error = props.errorControlList ? props.errorControlList.find(function (err) {
64667
+ return err.fieldName === control.name;
64668
+ }) : null;
64669
+ if (error) {
64670
+ return _extends({}, control, {
64671
+ errorMessage: error.message
64672
+ });
64673
+ } else {
64674
+ return _extends({}, control, {
64675
+ errorMessage: CTRL.EMPTY
64676
+ });
64677
+ }
64678
+ });
64679
+ });
64680
+ };
64681
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(ScrollBar, null, controlList.map(function (control) {
64682
+ var component = props.componentMap.find(function (x) {
64683
+ return x.name === control.code;
64684
+ });
64685
+ if (component) {
64686
+ return React__default.createElement("div", {
64687
+ className: control.isRow ? 'vitro-inline' : 'vitro-block'
64688
+ }, React__default.createElement("div", null, React__default.createElement(component.value, control)));
64689
+ }
64690
+ return null;
64691
+ })));
64692
+ };
64693
+
64694
+ var styles$L = {"vitro-search":"_search_vitro-search_QkJksC_","vitro-settings-dialog":"_search_vitro-settings-dialog_1_c5bIg","vitro-filter":"_search_vitro-filter_2n-Y-mS","vitro-add-field":"_search_vitro-add-field_2hHt1Z2","vitro-add-field-button":"_search_vitro-add-field-button_30hdXYn","vitro-add-field-dialog":"_search_vitro-add-field-dialog_3gC92SF","vitro-footer":"_search_vitro-footer_1-ya4xk","vitro-button-cancel":"_search_vitro-button-cancel_1M8UkMM"};
64695
+
64696
+ var Filter = function Filter(props) {
64697
+ var _useState = React.useState(null),
64698
+ componentMap = _useState[0],
64699
+ setComponentMap = _useState[1];
64700
+ React.useEffect(function () {
64701
+ initComponentMap();
64702
+ }, [props.componentMap]);
64703
+ var initComponentMap = function initComponentMap() {
64704
+ var map = props.componentMap.map(function (component) {
64705
+ return {
64706
+ name: component.name,
64707
+ value: function value(componentProps) {
64708
+ return React__default.createElement(Criterion, {
64709
+ label: componentProps.label,
64710
+ onDelete: props.onDeleteField,
64711
+ operatorList: props.operatorList,
64712
+ conditionList: props.conditionList,
64713
+ content: {
64714
+ component: component.value,
64715
+ props: _extends({}, componentProps, {
64716
+ label: CTRL.EMPTY
64717
+ })
64718
+ },
64719
+ onChange: componentProps.onChange,
64720
+ isShowOperatorSelect: true
64721
+ });
64722
+ }
64723
+ };
64724
+ });
64725
+ setComponentMap(map);
64726
+ };
64727
+ return React__default.createElement("div", {
64728
+ className: styles$L['vitro-filter']
64729
+ }, componentMap && React__default.createElement(FieldIterator, {
64730
+ fieldList: props.fieldList,
64731
+ componentMap: componentMap,
64732
+ onChange: props.onChange,
64733
+ isClearChangedFieldValueMap: true
64734
+ }));
64735
+ };
64736
+
64737
+ var styles$M = {"vitro-checkbox-list":"_checkbox-list_vitro-checkbox-list_1iZSkkv","vitro-control":"_checkbox-list_vitro-control_cxgm4cj","vitro-checkbox":"_checkbox-list_vitro-checkbox_1EqsnoQ"};
64738
+
64739
+ var CheckboxList = function CheckboxList(props) {
64740
+ var _useState = React.useState(props.itemList),
64741
+ itemList = _useState[0],
64742
+ setItemList = _useState[1];
64743
+ var _useState2 = React.useState([]),
64744
+ searchItemList = _useState2[0],
64745
+ setSearchItemList = _useState2[1];
64746
+ var _useState3 = React.useState(false),
64747
+ isShowSearchResult = _useState3[0],
64748
+ setIsShowSearchResult = _useState3[1];
64749
+ var localeService = inversifyReact.useInjection(SERVICE.LOCALE);
64750
+ var _onChange = function onChange(value, id) {
64751
+ setItemList(function (prevState) {
64752
+ return prevState.map(function (item) {
64753
+ if (item.id === id) {
64754
+ item.value = value;
64755
+ }
64756
+ return item;
64757
+ });
64758
+ });
64759
+ if (props.onChange) {
64760
+ props.onChange(getSelectedItemList());
64761
+ }
64762
+ };
64763
+ var getSelectedItemList = function getSelectedItemList() {
64764
+ return itemList.map(function (item) {
64765
+ if (item.value) {
64766
+ return item.id;
64767
+ }
64768
+ });
64769
+ };
64770
+ var onSearchCancel = function onSearchCancel() {
64771
+ setSearchItemList([]);
64772
+ setIsShowSearchResult(false);
64773
+ };
64774
+ var onInputChange = function onInputChange(text) {
64775
+ var valueList = props.itemList.filter(function (item) {
64776
+ return item.name.toLowerCase().includes(text.toLowerCase());
64777
+ });
64778
+ setSearchItemList(valueList);
64779
+ setIsShowSearchResult(true);
64780
+ };
64781
+ var getCheckbox = function getCheckbox(item) {
64782
+ return React__default.createElement(Checkbox, {
64783
+ label: item.name,
64784
+ name: item.name,
64785
+ value: props.isAllSelected ? true : item.value,
64786
+ onChange: function onChange(value, name) {
64787
+ return _onChange(value, item.id);
64788
+ },
64789
+ className: styles$M['vitro-checkbox']
64790
+ });
64791
+ };
64792
+ return React__default.createElement("div", {
64793
+ className: styles$M['vitro-checkbox-list']
64794
+ }, React__default.createElement(Input$1, {
64795
+ onCancel: onSearchCancel,
64796
+ onChange: onInputChange,
64797
+ onEnter: onInputChange,
64798
+ className: styles$M['vitro-control']
64799
+ }), React__default.createElement(ScrollBar, null, isShowSearchResult ? searchItemList.length ? searchItemList.map(function (item) {
64800
+ return getCheckbox(item);
64801
+ }) : React__default.createElement("span", null, localeService.create(LOCALE$8.EMPTY_PLACEHOLDER)) : itemList.map(function (item) {
64802
+ return getCheckbox(item);
64803
+ })));
64804
+ };
64805
+
64806
+ var ESC_KEY_CODE$1 = 27;
64807
+ var Search = function Search(props) {
64808
+ var _useState = React.useState(false),
64809
+ isShowDialog = _useState[0],
64810
+ setIsShowDialog = _useState[1];
64811
+ var _useState2 = React.useState(false),
64812
+ isShowAddFieldDialog = _useState2[0],
64813
+ setIsShowAddFieldDialog = _useState2[1];
64814
+ var _useState3 = React.useState([]),
64815
+ filterFieldList = _useState3[0],
64816
+ setFilterFieldList = _useState3[1];
64817
+ var _useState4 = React.useState([]),
64818
+ searchCriterionList = _useState4[0],
64819
+ setSearchCriterionList = _useState4[1];
64820
+ var _useState5 = React.useState([]),
64821
+ selectedSearchCriterionList = _useState5[0],
64822
+ setSelectedSearchCriterionList = _useState5[1];
64823
+ var _useState6 = React.useState([]),
64824
+ checkboxFieldList = _useState6[0],
64825
+ setCheckboxFieldList = _useState6[1];
64826
+ var addFieldDialogRef = React.useRef(null);
64827
+ var searchRef = React.useRef(null);
64828
+ React.useEffect(function () {
64829
+ window.addEventListener(exports.EVENT.MOUSEDOWN, onBlurAddFieldDialog);
64830
+ window.addEventListener(exports.EVENT.KEYDOWN, onEscClick, false);
64831
+ return function () {
64832
+ window.removeEventListener(exports.EVENT.MOUSEDOWN, onBlurAddFieldDialog);
64833
+ window.removeEventListener(exports.EVENT.KEYDOWN, onEscClick, false);
64834
+ };
64835
+ });
64836
+ React.useEffect(function () {
64837
+ var checkboxList = props.fieldList;
64838
+ if (props.visibleFieldList) {
64839
+ setFilterFieldList(props.visibleFieldList);
64840
+ checkboxList = props.fieldList.map(function (field) {
64841
+ var _props$visibleFieldLi;
64842
+ if ((_props$visibleFieldLi = props.visibleFieldList) !== null && _props$visibleFieldLi !== void 0 && _props$visibleFieldLi.find(function (f) {
64843
+ return f.id === field.id;
64844
+ })) {
64845
+ return _extends({}, field, {
64846
+ value: true
64847
+ });
64848
+ } else {
64849
+ return field;
64850
+ }
64851
+ });
64852
+ }
64853
+ setCheckboxFieldList(checkboxList);
64854
+ }, [props.visibleFieldList]);
64855
+ var onSettingsClick = function onSettingsClick(active) {
64856
+ setIsShowDialog(active);
64857
+ };
64858
+ var onAddField = function onAddField() {
64859
+ setIsShowAddFieldDialog(!isShowAddFieldDialog);
64860
+ };
64861
+ var onFieldListChange = function onFieldListChange(selectedFieldIdList) {
64862
+ var newFieldList = [];
64863
+ var _loop = function _loop() {
64864
+ var id = _step.value;
64865
+ var field = props.fieldList.find(function (field) {
64866
+ return field.id === id;
64867
+ });
64868
+ if (field) {
64869
+ newFieldList.push(field);
64870
+ }
64871
+ };
64872
+ for (var _iterator = _createForOfIteratorHelperLoose(selectedFieldIdList), _step; !(_step = _iterator()).done;) {
64873
+ _loop();
64874
+ }
64875
+ setFilterFieldList(newFieldList);
64876
+ };
64877
+ var closeSettings = function closeSettings() {
64878
+ setIsShowAddFieldDialog(false);
64879
+ setIsShowDialog(false);
64880
+ };
64881
+ var onDeleteField = function onDeleteField(id) {
64882
+ setFilterFieldList(function (prevState) {
64883
+ return prevState.filter(function (field) {
64884
+ return field.id !== id;
64885
+ });
64886
+ });
64887
+ setCheckboxFieldList(function (prevState) {
64888
+ return prevState.map(function (field) {
64889
+ if (field.id === id) {
64890
+ return _extends({}, field, {
64891
+ value: false
64892
+ });
64893
+ } else {
64894
+ return field;
64895
+ }
64896
+ });
64897
+ });
64898
+ };
64899
+ var onFilterChange = function onFilterChange(changedFieldValueMap, saveStatus) {
64900
+ var criterionList = [];
64901
+ changedFieldValueMap.forEach(function (value, key) {
64902
+ criterionList.push(value);
64903
+ });
64904
+ setSearchCriterionList(criterionList);
64905
+ if (props.onFilterChange) {
64906
+ props.onFilterChange(criterionList);
64907
+ }
64908
+ };
64909
+ var onSubmit = function onSubmit() {
64910
+ props.onSubmit(searchCriterionList);
64911
+ var selectedList = searchCriterionList.map(function (x) {
64912
+ var fieldName = props.fieldList.find(function (field) {
64913
+ return field.internalName === x.internalName;
64914
+ }).name;
64915
+ return _extends({}, x, {
64916
+ name: fieldName
64917
+ });
64918
+ });
64919
+ setSelectedSearchCriterionList(selectedList);
64920
+ closeSettings();
64921
+ };
64922
+ var onCancel = function onCancel() {
64923
+ setSearchCriterionList([]);
64924
+ setSelectedSearchCriterionList([]);
64925
+ closeSettings();
64926
+ props.onCancel();
64927
+ };
64928
+ var onInputChange = function onInputChange(value) {
64929
+ var criterion = {
64930
+ condition: 1,
64931
+ operator: 0,
64932
+ internalName: props.defaultSearchFieldName,
64933
+ valueList: [value]
64934
+ };
64935
+ setSearchCriterionList([criterion]);
64936
+ };
64937
+ var onEscClick = function onEscClick(e) {
64938
+ if (e.keyCode === ESC_KEY_CODE$1) {
64939
+ closeSettings();
64940
+ }
64941
+ };
64942
+ var onBlurAddFieldDialog = function onBlurAddFieldDialog(e) {
64943
+ if (addFieldDialogRef.current && !addFieldDialogRef.current.contains(e.target)) {
64944
+ setIsShowAddFieldDialog(false);
64945
+ }
64946
+ };
64947
+ return React__default.createElement("div", {
64948
+ ref: searchRef,
64949
+ className: styles$L['vitro-search']
64950
+ }, React__default.createElement(Input$1, {
64951
+ valueList: selectedSearchCriterionList,
64952
+ onSettingsClick: onSettingsClick,
64953
+ onCancel: onCancel,
64954
+ onEnter: onSubmit,
64955
+ onChange: onInputChange,
64956
+ placeholder: props.inputPlaceholder,
64957
+ isSettingsActive: isShowDialog,
64958
+ isShowSettings: true
64959
+ }), isShowDialog && React__default.createElement("div", {
64960
+ className: styles$L['vitro-settings-dialog']
64961
+ }, React__default.createElement(Filter, {
64962
+ fieldList: filterFieldList,
64963
+ onChange: onFilterChange,
64964
+ componentMap: props.componentMap,
64965
+ onDeleteField: onDeleteField,
64966
+ operatorList: props.operatorList,
64967
+ conditionList: props.conditionList
64968
+ }), React__default.createElement("div", {
64969
+ className: styles$L['vitro-add-field']
64970
+ }, React__default.createElement(Button$2, {
64971
+ text: props.labelAddField,
64972
+ onClick: onAddField,
64973
+ className: styles$L['vitro-add-field-button']
64974
+ }), isShowAddFieldDialog && React__default.createElement("div", {
64975
+ ref: addFieldDialogRef,
64976
+ className: styles$L['vitro-add-field-dialog']
64977
+ }, React__default.createElement(CheckboxList, {
64978
+ itemList: checkboxFieldList,
64979
+ onChange: onFieldListChange,
64980
+ isAllSelected: props.isAllFieldsVisible
64981
+ }))), React__default.createElement("div", {
64982
+ className: styles$L['vitro-footer']
64983
+ }, React__default.createElement(Button$2, {
64984
+ text: props.labelCancel,
64985
+ onClick: closeSettings,
64986
+ className: styles$L['vitro-button-cancel']
64987
+ }), React__default.createElement(Button$2, {
64988
+ text: props.labelSearch,
64989
+ onClick: onSubmit
64990
+ }))));
64991
+ };
64992
+
64196
64993
  exports.ACTION_HANDLER = ActionHandlerConstants;
64197
64994
  exports.ALERT = AlertConstants;
64198
64995
  exports.ActionHandler = ActionHandler;
@@ -64212,11 +65009,13 @@ exports.CommandMenuSubItem = CommandMenuSubItem;
64212
65009
  exports.ComponentLoader = ComponentLoader;
64213
65010
  exports.ComponentLoaderContextImpl = ComponentLoaderContextImpl;
64214
65011
  exports.ControlGroup = ControlGroup;
65012
+ exports.Criterion = Criterion;
64215
65013
  exports.DatePicker = DatePicker;
64216
65014
  exports.Dialog = Dialog;
64217
65015
  exports.DialogContent = DialogContent;
64218
65016
  exports.DialogFooter = DialogFooter;
64219
65017
  exports.DropdownButton = DropdownButton;
65018
+ exports.FieldIterator = FieldIterator;
64220
65019
  exports.Icon = Icon;
64221
65020
  exports.ImagePicker = ImagePicker;
64222
65021
  exports.Input = Input;
@@ -64228,6 +65027,7 @@ exports.MessageInput = MessageInput;
64228
65027
  exports.MicroFrontend = MicroFrontend;
64229
65028
  exports.PdfViewer = PdfViewer;
64230
65029
  exports.ScrollBar = ScrollBar;
65030
+ exports.Search = Search;
64231
65031
  exports.Sidebar = Sidebar;
64232
65032
  exports.TABLE_VIEW = TableViewConstants;
64233
65033
  exports.TREE_VIEW = TreeViewConstants;