@vitrosoftware/common-ui-ts 1.1.51 → 1.1.53

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 (32) hide show
  1. package/css/std/controls/checkbox/checkbox.css +2 -2
  2. package/css/std/controls/search/checkbox-list.css +11 -0
  3. package/css/std/controls/search/input.css +55 -18
  4. package/css/std/controls/search/search.css +8 -1
  5. package/css/std/controls/table-view/treegrid.css +11 -8
  6. package/css/std/controls/tooltip/tooltip.css +3 -0
  7. package/dist/constants/Control.d.ts +10 -0
  8. package/dist/controls/Checkbox/Checkbox.d.ts +1 -1
  9. package/dist/controls/Criterion/Condition.d.ts +6 -0
  10. package/dist/controls/Criterion/ConditionSelect.d.ts +3 -6
  11. package/dist/controls/Criterion/Criterion.d.ts +6 -10
  12. package/dist/controls/Criterion/Operator.d.ts +4 -0
  13. package/dist/controls/DatePicker/DatePicker.d.ts +2 -0
  14. package/dist/controls/FieldIterator/FieldIterator.d.ts +1 -1
  15. package/dist/controls/LookupPicker/LookupPicker.d.ts +1 -0
  16. package/dist/controls/Search/Filter.d.ts +6 -10
  17. package/dist/controls/Search/Input.d.ts +1 -1
  18. package/dist/controls/Search/Search.d.ts +6 -10
  19. package/dist/controls/TableView/TableViewConstants.d.ts +4 -1
  20. package/dist/controls/TableView/TableViewContext.d.ts +1 -0
  21. package/dist/controls/TableView/TreeGridTableViewContextImpl.d.ts +1 -0
  22. package/dist/controls/TimePicker/TimePicker.d.ts +2 -0
  23. package/dist/controls/UserLookupPicker/UserLookupPicker.d.ts +1 -0
  24. package/dist/index.css +80 -23
  25. package/dist/index.d.ts +2 -0
  26. package/dist/index.js +204 -74
  27. package/dist/index.js.map +1 -1
  28. package/package.json +1 -1
  29. package/dist/EventConstants.d.ts +0 -4
  30. package/dist/index.modern.js +0 -64186
  31. package/dist/index.modern.js.map +0 -1
  32. package/dist/index.test.d.ts +0 -1
package/dist/index.js CHANGED
@@ -20684,6 +20684,9 @@ var TreeGridTableViewContextImpl = /*#__PURE__*/function () {
20684
20684
  _proto.getFilter = function getFilter(spec) {
20685
20685
  return this.grid.GetFilter(spec);
20686
20686
  };
20687
+ _proto.selectRange = function selectRange(row1, col1, row2, col2, select) {
20688
+ this.grid.SelectRange(row1, col1, row2, col2, select);
20689
+ };
20687
20690
  _createClass(TreeGridTableViewContextImpl, [{
20688
20691
  key: "columnList",
20689
20692
  get: function get() {
@@ -20755,6 +20758,8 @@ var EVENT$1;
20755
20758
  EVENT["ON_DATA_SEND"] = "OnDataSend";
20756
20759
  EVENT["ON_LOADED"] = "OnLoaded";
20757
20760
  EVENT["ON_CLICK"] = "OnClick";
20761
+ EVENT["ON_CLICK_PANEL"] = "OnClickPanel";
20762
+ EVENT["ON_CLICK_CELL"] = "OnClickCell";
20758
20763
  EVENT["ON_BLUR"] = "OnBlur";
20759
20764
  EVENT["ON_DBL_CLICK"] = "OnDblClick";
20760
20765
  EVENT["ON_CONTEXT_MENU"] = "OnContextMenu";
@@ -20812,6 +20817,7 @@ var ROW_TYPE;
20812
20817
  ROW_TYPE["HEADER"] = "Header";
20813
20818
  ROW_TYPE["DATA"] = "Data";
20814
20819
  ROW_TYPE["FILTER"] = "Filter";
20820
+ ROW_TYPE["GROUP"] = "Group";
20815
20821
  })(ROW_TYPE || (ROW_TYPE = {}));
20816
20822
  var CELL_TYPE;
20817
20823
  (function (CELL_TYPE) {
@@ -61002,7 +61008,7 @@ var Checkbox = function Checkbox(props) {
61002
61008
  value = _useState[0],
61003
61009
  setValue = _useState[1];
61004
61010
  var onChange = function onChange() {
61005
- props.onChange && props.onChange(!value);
61011
+ props.onChange && props.onChange(!value, props.name);
61006
61012
  setValue(!value);
61007
61013
  };
61008
61014
  React.useEffect(function () {
@@ -61304,7 +61310,7 @@ var DatePicker = React.forwardRef(function (props, ref) {
61304
61310
  return props.isWorkDay(date);
61305
61311
  },
61306
61312
  open: function open(e) {
61307
- onFocus();
61313
+ onFocus(e);
61308
61314
  if (props.onOpen) {
61309
61315
  props.onOpen(e, $$3(container.current));
61310
61316
  }
@@ -61315,7 +61321,7 @@ var DatePicker = React.forwardRef(function (props, ref) {
61315
61321
  }
61316
61322
  },
61317
61323
  close: function close(e) {
61318
- onBlur();
61324
+ onBlur(e);
61319
61325
  if (props.onClose) {
61320
61326
  props.onClose(e.sender.value(), props.name);
61321
61327
  }
@@ -61370,7 +61376,7 @@ var DatePicker = React.forwardRef(function (props, ref) {
61370
61376
  React.useEffect(function () {
61371
61377
  $$3(inputRef.current).data(componentName).setOptions({
61372
61378
  open: function open(e) {
61373
- onFocus();
61379
+ onFocus(e);
61374
61380
  if (props.onOpen) {
61375
61381
  props.onOpen(e, $$3(container.current));
61376
61382
  }
@@ -61380,7 +61386,7 @@ var DatePicker = React.forwardRef(function (props, ref) {
61380
61386
  React.useEffect(function () {
61381
61387
  $$3(inputRef.current).data(componentName).setOptions({
61382
61388
  close: function close(e) {
61383
- onBlur();
61389
+ onBlur(e);
61384
61390
  if (props.onClose) {
61385
61391
  props.onClose(e.sender.value(), props.name);
61386
61392
  }
@@ -61405,11 +61411,17 @@ var DatePicker = React.forwardRef(function (props, ref) {
61405
61411
  }
61406
61412
  };
61407
61413
  });
61408
- var onFocus = function onFocus() {
61414
+ var onFocus = function onFocus(e) {
61409
61415
  setState(styles$m['vitro-focus']);
61416
+ if (props.onFocus) {
61417
+ props.onFocus(e);
61418
+ }
61410
61419
  };
61411
- var onBlur = function onBlur() {
61420
+ var onBlur = function onBlur(e) {
61412
61421
  setState(props.errorMessage ? styles$m['vitro-error'] : styles$m[CTRL.EMPTY]);
61422
+ if (props.onBlur) {
61423
+ props.onBlur(e);
61424
+ }
61413
61425
  };
61414
61426
  var copyValue = function copyValue() {
61415
61427
  navigator.clipboard.writeText("" + props.value);
@@ -61488,13 +61500,13 @@ var TimePicker = React.forwardRef(function (props, ref) {
61488
61500
  }
61489
61501
  },
61490
61502
  open: function open(e) {
61491
- onFocus();
61503
+ onFocus(e);
61492
61504
  if (props.onOpen) {
61493
61505
  props.onOpen(e, $$4(container.current));
61494
61506
  }
61495
61507
  },
61496
61508
  close: function close(e) {
61497
- onBlur();
61509
+ onBlur(e);
61498
61510
  if (props.onClose) {
61499
61511
  props.onClose(e, $$4(container.current));
61500
61512
  }
@@ -61519,11 +61531,17 @@ var TimePicker = React.forwardRef(function (props, ref) {
61519
61531
  }
61520
61532
  };
61521
61533
  });
61522
- var onFocus = function onFocus() {
61534
+ var onFocus = function onFocus(e) {
61523
61535
  setState(styles$n['vitro-focus']);
61536
+ if (props.onFocus) {
61537
+ props.onFocus(e);
61538
+ }
61524
61539
  };
61525
- var onBlur = function onBlur() {
61540
+ var onBlur = function onBlur(e) {
61526
61541
  setState(props.errorMessage ? styles$n['vitro-error'] : styles$n[CTRL.EMPTY]);
61542
+ if (props.onBlur) {
61543
+ props.onBlur(e);
61544
+ }
61527
61545
  };
61528
61546
  var copyValue = function copyValue() {
61529
61547
  navigator.clipboard.writeText("" + props.value);
@@ -61852,9 +61870,12 @@ var LookupPicker = React.forwardRef(function (props, ref) {
61852
61870
  }
61853
61871
  });
61854
61872
  };
61855
- var onFocus = function onFocus() {
61873
+ var onFocus = function onFocus(e) {
61856
61874
  setState(styles$q['vitro-focus']);
61857
61875
  setValueListVisible(true);
61876
+ if (props.onFocus) {
61877
+ props.onFocus(e);
61878
+ }
61858
61879
  };
61859
61880
  var onCollapseButtonClick = function onCollapseButtonClick(valueListVisible) {
61860
61881
  setValueListVisible(!valueListVisible);
@@ -64296,6 +64317,16 @@ var ActivityMessage = function ActivityMessage(props) {
64296
64317
  }));
64297
64318
  };
64298
64319
 
64320
+ var CONTROL = function CONTROL() {};
64321
+ CONTROL.LOOKUP_PICKER = 'LookupPicker';
64322
+ CONTROL.DATE_PICKER = 'DatePicker';
64323
+ CONTROL.CHECKBOX = 'Checkbox';
64324
+ CONTROL.IMAGE_PICKER = 'ImagePicker';
64325
+ CONTROL.AVATAR = 'Avatar';
64326
+ CONTROL.INPUT = 'Input';
64327
+ CONTROL.PASSWORD = 'Password';
64328
+ CONTROL.TIME_PICKER = 'TimePicker';
64329
+
64299
64330
  var LOCALE$6;
64300
64331
  (function (LOCALE) {
64301
64332
  LOCALE["PLACEHOLDER"] = "app.common.messageInput.placeholder";
@@ -64465,7 +64496,7 @@ var ImagePicker = function ImagePicker(props) {
64465
64496
  var styles$L = {"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"};
64466
64497
 
64467
64498
  var ConditionSelect = function ConditionSelect(props) {
64468
- var _useState = React.useState(props.itemList[0]),
64499
+ var _useState = React.useState(props.defaultValue || props.itemList[0]),
64469
64500
  condition = _useState[0],
64470
64501
  setCondition = _useState[1];
64471
64502
  var _useState2 = React.useState(false),
@@ -64527,7 +64558,7 @@ var ConditionSelect = function ConditionSelect(props) {
64527
64558
  };
64528
64559
 
64529
64560
  var Criterion = function Criterion(props) {
64530
- var _useState = React.useState(props.operatorList.length ? props.operatorList[0] : null),
64561
+ var _useState = React.useState(props.operatorList[0]),
64531
64562
  operator = _useState[0],
64532
64563
  setOperator = _useState[1];
64533
64564
  var _useState2 = React.useState(false),
@@ -64539,19 +64570,30 @@ var Criterion = function Criterion(props) {
64539
64570
  var _useState4 = React.useState(CTRL.EMPTY),
64540
64571
  state = _useState4[0],
64541
64572
  setState = _useState4[1];
64573
+ var componentProps = props.content.props;
64574
+ var defaultOperator = (componentProps.value ? props.operatorList.find(function (x) {
64575
+ return x.type === componentProps.value.operator;
64576
+ }) : props.operatorList.find(function (x) {
64577
+ return x.type === props.defaultOperator;
64578
+ })) || props.operatorList[0];
64579
+ var defaultCondition = (componentProps.value ? props.conditionList.find(function (x) {
64580
+ return x.type === componentProps.value.condition;
64581
+ }) : props.conditionList.find(function (x) {
64582
+ return x.type === props.defaultCondition;
64583
+ })) || props.conditionList[0];
64542
64584
  var value = React.useMemo(function () {
64543
- var _props$operatorList$, _props$conditionList$;
64544
64585
  return {
64545
- internalName: props.content.props.name,
64546
- operator: (_props$operatorList$ = props.operatorList[0]) === null || _props$operatorList$ === void 0 ? void 0 : _props$operatorList$.type,
64547
- valueList: [],
64548
- condition: (_props$conditionList$ = props.conditionList[0]) === null || _props$conditionList$ === void 0 ? void 0 : _props$conditionList$.type
64586
+ internalName: componentProps.name,
64587
+ operator: defaultOperator.type,
64588
+ valueList: componentProps.value ? componentProps.value.valueList : [],
64589
+ condition: defaultCondition.type
64549
64590
  };
64550
64591
  }, []);
64551
64592
  var selectRef = React.useRef(null);
64552
64593
  var labelRef = React.useRef(null);
64553
64594
  React.useEffect(function () {
64554
64595
  window.addEventListener(exports.EVENT.CLICK, onBlurSelect);
64596
+ setOperator(defaultOperator);
64555
64597
  return function () {
64556
64598
  window.removeEventListener(exports.EVENT.CLICK, onBlurSelect);
64557
64599
  };
@@ -64581,26 +64623,23 @@ var Criterion = function Criterion(props) {
64581
64623
  };
64582
64624
  var onFocus = function onFocus(e) {
64583
64625
  setState(styles$L['vitro-focus']);
64584
- if (props.content.props.onFocus) {
64585
- props.content.props.onFocus(e);
64626
+ if (componentProps.onFocus) {
64627
+ componentProps.onFocus(e);
64586
64628
  }
64587
64629
  };
64588
64630
  var onBlur = function onBlur(e) {
64589
- setState(props.content.props.errorMessage ? styles$L['vitro-error'] : CTRL.EMPTY);
64590
- if (props.content.props.onBlur) {
64591
- props.content.props.onBlur(e);
64631
+ setState(componentProps.errorMessage ? styles$L['vitro-error'] : CTRL.EMPTY);
64632
+ if (componentProps.onBlur) {
64633
+ componentProps.onBlur(e);
64592
64634
  }
64593
64635
  };
64594
64636
  var onChange = function onChange(val) {
64595
64637
  if (props.onChange) {
64596
- props.onChange(val, props.content.props.name);
64638
+ props.onChange(val, componentProps.name);
64597
64639
  }
64598
64640
  };
64599
64641
  var onControlChange = function onControlChange(val, name) {
64600
- var valueArray = Array.isArray(val) ? val : [val];
64601
- value.valueList = valueArray.map(function (v) {
64602
- return v && v.id ? v.id : v;
64603
- });
64642
+ value.valueList = Array.isArray(val) ? val : [val];
64604
64643
  onChange(value);
64605
64644
  };
64606
64645
  return React__default.createElement("div", {
@@ -64627,8 +64666,9 @@ var Criterion = function Criterion(props) {
64627
64666
  }, React__default.createElement("span", null, props.label)), React__default.createElement(ConditionSelect, {
64628
64667
  itemList: props.conditionList,
64629
64668
  onSelect: onConditionClick,
64630
- translateX: translate
64631
- }), React__default.createElement(props.content.component, _extends({}, props.content.props, {
64669
+ translateX: translate,
64670
+ defaultValue: defaultCondition
64671
+ }), React__default.createElement(props.content.component, _extends({}, componentProps, {
64632
64672
  className: styles$L['vitro-control'],
64633
64673
  onBlur: onBlur,
64634
64674
  onFocus: onFocus,
@@ -64639,7 +64679,7 @@ var Criterion = function Criterion(props) {
64639
64679
  isRequired: false
64640
64680
  }))), React__default.createElement("button", {
64641
64681
  onClick: function onClick() {
64642
- return props.onDelete(props.content.props.id);
64682
+ return props.onDelete(componentProps.id);
64643
64683
  },
64644
64684
  className: styles$L['vitro-button-cancel']
64645
64685
  }));
@@ -64651,20 +64691,39 @@ var LOCALE$8;
64651
64691
  LOCALE["EMPTY_PLACEHOLDER"] = "app.common.search.checkboxList.emptyPlaceholder";
64652
64692
  })(LOCALE$8 || (LOCALE$8 = {}));
64653
64693
 
64654
- var styles$M = {"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"};
64694
+ var styles$M = {"vitro-control":"_input_vitro-control__btu7j_","vitro-active":"_input_vitro-active_jxhGdE8","vitro-focus":"_input_vitro-focus_3tuxmPs","vitro-button-search":"_input_vitro-button-search_15PeWCS","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"};
64655
64695
 
64696
+ var NEW_LINE$1 = '\n';
64656
64697
  var Input$1 = function Input(props) {
64657
- var _useState = React.useState(Boolean(props.isSettingsActive)),
64658
- isToggled = _useState[0],
64659
- setIsToggled = _useState[1];
64660
- var _useState2 = React.useState(false),
64661
- isActive = _useState2[0],
64662
- setIsActive = _useState2[1];
64663
- var _useState3 = React.useState(CTRL.EMPTY),
64664
- state = _useState3[0],
64665
- setState = _useState3[1];
64698
+ var _useState = React.useState(false),
64699
+ isMobileView = _useState[0],
64700
+ setIsMobileView = _useState[1];
64701
+ var _useState2 = React.useState(Boolean(props.isSettingsActive)),
64702
+ isToggled = _useState2[0],
64703
+ setIsToggled = _useState2[1];
64704
+ var _useState3 = React.useState(false),
64705
+ isActive = _useState3[0],
64706
+ setIsActive = _useState3[1];
64707
+ var _useState4 = React.useState(CTRL.EMPTY),
64708
+ state = _useState4[0],
64709
+ setState = _useState4[1];
64666
64710
  var localeService = inversifyReact.useInjection(SERVICE.LOCALE);
64667
64711
  var inputRef = React.useRef(null);
64712
+ React.useEffect(function () {
64713
+ window.addEventListener(exports.EVENT.RESIZE, handleResize);
64714
+ handleResize();
64715
+ return function () {
64716
+ window.removeEventListener(exports.EVENT.RESIZE, handleResize);
64717
+ };
64718
+ }, []);
64719
+ React.useEffect(function () {
64720
+ handleResize();
64721
+ }, [window.innerWidth]);
64722
+ React.useEffect(function () {
64723
+ if (isMobileView && props.valueList && props.valueList.length) {
64724
+ setIsToggled(true);
64725
+ }
64726
+ }, [isMobileView, props.valueList]);
64668
64727
  React.useEffect(function () {
64669
64728
  var _props$valueList;
64670
64729
  if (state || props.textValue || (_props$valueList = props.valueList) !== null && _props$valueList !== void 0 && _props$valueList.length) {
@@ -64674,6 +64733,9 @@ var Input$1 = function Input(props) {
64674
64733
  React.useEffect(function () {
64675
64734
  setIsToggled(Boolean(props.isSettingsActive));
64676
64735
  }, [props.isSettingsActive]);
64736
+ var handleResize = function handleResize() {
64737
+ window.innerWidth < 800 ? setIsMobileView(true) : setIsMobileView(false);
64738
+ };
64677
64739
  var onSettingsClick = function onSettingsClick() {
64678
64740
  setIsToggled(!isToggled);
64679
64741
  if (props.onSettingsClick) {
@@ -64681,10 +64743,15 @@ var Input$1 = function Input(props) {
64681
64743
  }
64682
64744
  };
64683
64745
  var onKeyDown = function onKeyDown(e) {
64684
- var value = inputRef.current && inputRef.current.value;
64685
- if (e.keyCode === 13 && value) {
64746
+ if (e.keyCode === 13) {
64686
64747
  e.preventDefault();
64687
- props.onEnter();
64748
+ onSubmit();
64749
+ }
64750
+ };
64751
+ var onSubmit = function onSubmit() {
64752
+ var value = inputRef.current && inputRef.current.value;
64753
+ if (value) {
64754
+ props.onSubmit();
64688
64755
  inputRef.current.value = CTRL.EMPTY;
64689
64756
  }
64690
64757
  };
@@ -64700,6 +64767,10 @@ var Input$1 = function Input(props) {
64700
64767
  props.onChange(e.target.value);
64701
64768
  }
64702
64769
  };
64770
+ var onBlur = function onBlur() {
64771
+ setState(CTRL.EMPTY);
64772
+ onSubmit();
64773
+ };
64703
64774
  var getClassName = function getClassName() {
64704
64775
  var classList = [styles$M['vitro-control'], props.className || CTRL.EMPTY, state];
64705
64776
  if (isActive) {
@@ -64707,8 +64778,8 @@ var Input$1 = function Input(props) {
64707
64778
  }
64708
64779
  return classList.join(CTRL.SPACE);
64709
64780
  };
64710
- var getValueList = function getValueList(value) {
64711
- return value.valueList.map(function (x) {
64781
+ var getTextValue = function getTextValue(value) {
64782
+ var valueArray = value.valueList.map(function (x) {
64712
64783
  if (typeof x === 'object') {
64713
64784
  if (x instanceof Date) {
64714
64785
  return x.toLocaleString().split(CTRL.COMMA)[0];
@@ -64718,20 +64789,48 @@ var Input$1 = function Input(props) {
64718
64789
  return x;
64719
64790
  }
64720
64791
  });
64792
+ var text = [value.name, valueArray.join(CTRL.COMMA + CTRL.SPACE)].join(CTRL.COLON + CTRL.SPACE);
64793
+ return text;
64794
+ };
64795
+ var getTextValueList = function getTextValueList(valueList) {
64796
+ var list = valueList.map(function (x) {
64797
+ return getTextValue(x);
64798
+ });
64799
+ list.shift();
64800
+ return list.join(NEW_LINE$1);
64721
64801
  };
64722
64802
  var getSelectedValueList = function getSelectedValueList(valueList) {
64723
64803
  var firstValue = valueList[0];
64724
64804
  return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
64725
64805
  className: styles$M['vitro-search-value']
64726
- }, firstValue.name + CTRL.COLON + CTRL.SPACE, getValueList(firstValue).join(CTRL.COMMA + CTRL.SPACE)), valueList.length && valueList.length > 1 ? React__default.createElement("div", {
64806
+ }, getTextValue(firstValue), React__default.createElement("button", {
64807
+ onClick: onCancel,
64808
+ className: styles$M['vitro-button-cancel']
64809
+ })), valueList.length && valueList.length > 1 ? React__default.createElement(Tooltip$1, {
64810
+ text: getTextValueList(valueList),
64811
+ placement: PLACEMENT$1.BOTTOM
64812
+ }, React__default.createElement("div", {
64727
64813
  className: styles$M['vitro-search-value']
64728
64814
  }, localeService.create(LOCALE$8.INPUT_MORE, {
64729
64815
  count: valueList.length - 1
64730
- })) : null);
64816
+ }), React__default.createElement("button", {
64817
+ onClick: onCancel,
64818
+ className: styles$M['vitro-button-cancel']
64819
+ }))) : null);
64820
+ };
64821
+ var onSearchClick = function onSearchClick() {
64822
+ if (isMobileView) {
64823
+ onSettingsClick();
64824
+ } else {
64825
+ onSubmit();
64826
+ }
64731
64827
  };
64732
64828
  return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
64733
64829
  className: getClassName()
64734
- }, React__default.createElement("div", {
64830
+ }, React__default.createElement("button", {
64831
+ className: styles$M['vitro-button-search'] + (isToggled ? CTRL.SPACE + styles$M['vitro-active'] : CTRL.EMPTY),
64832
+ onClick: onSearchClick
64833
+ }), !isMobileView && React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
64735
64834
  className: styles$M['vitro-search-value-list']
64736
64835
  }, props.valueList && props.valueList.length ? getSelectedValueList(props.valueList) : React__default.createElement("input", {
64737
64836
  type: 'text',
@@ -64741,9 +64840,7 @@ var Input$1 = function Input(props) {
64741
64840
  onFocus: function onFocus() {
64742
64841
  return setState(styles$M['vitro-focus']);
64743
64842
  },
64744
- onBlur: function onBlur() {
64745
- return setState(CTRL.EMPTY);
64746
- },
64843
+ onBlur: onBlur,
64747
64844
  placeholder: !isActive ? props.placeholder : CTRL.EMPTY
64748
64845
  })), isActive && React__default.createElement(React__default.Fragment, null, props.isShowSettings && React__default.createElement("button", {
64749
64846
  onClick: onSettingsClick,
@@ -64751,7 +64848,7 @@ var Input$1 = function Input(props) {
64751
64848
  }), React__default.createElement("button", {
64752
64849
  onClick: onCancel,
64753
64850
  className: styles$M['vitro-button-cancel']
64754
- }))));
64851
+ })))));
64755
64852
  };
64756
64853
 
64757
64854
  var FieldIterator = React.forwardRef(function (props, ref) {
@@ -64843,7 +64940,7 @@ var FieldIterator = React.forwardRef(function (props, ref) {
64843
64940
  var getFirstActiveControl = function getFirstActiveControl() {
64844
64941
  if (controlList && controlList.length) {
64845
64942
  return controlList.find(function (x) {
64846
- return !x.isReadOnly && !x.isDisabled;
64943
+ return !x.isReadOnly && !x.isDisabled && !x.value;
64847
64944
  });
64848
64945
  }
64849
64946
  return null;
@@ -64923,11 +65020,12 @@ var FieldIterator = React.forwardRef(function (props, ref) {
64923
65020
  });
64924
65021
  });
64925
65022
  };
64926
- return React__default.createElement(React__default.Fragment, null, React__default.createElement(ScrollBar, null, controlList.map(function (control) {
65023
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(ScrollBar, null, controlList.map(function (control, index) {
64927
65024
  var component = props.componentMap.find(function (x) {
64928
65025
  return x.name === control.code;
64929
65026
  });
64930
65027
  if (component) {
65028
+ control.index = index;
64931
65029
  return React__default.createElement("div", {
64932
65030
  className: control.isRow ? 'vitro-inline' : 'vitro-block'
64933
65031
  }, React__default.createElement("div", null, React__default.createElement(component.value, control)));
@@ -64942,9 +65040,28 @@ var Filter = function Filter(props) {
64942
65040
  var _useState = React.useState(null),
64943
65041
  componentMap = _useState[0],
64944
65042
  setComponentMap = _useState[1];
65043
+ var _useState2 = React.useState(null),
65044
+ fieldValueMap = _useState2[0],
65045
+ setFieldValueMap = _useState2[1];
65046
+ var _useState3 = React.useState(null),
65047
+ changedFieldValueMap = _useState3[0],
65048
+ setChangedFieldValueMap = _useState3[1];
64945
65049
  React.useEffect(function () {
64946
65050
  initComponentMap();
64947
65051
  }, [props.componentMap]);
65052
+ React.useEffect(function () {
65053
+ if (changedFieldValueMap) {
65054
+ setFieldValueMap(Object.fromEntries(changedFieldValueMap));
65055
+ }
65056
+ }, [props.fieldList, changedFieldValueMap]);
65057
+ React.useEffect(function () {
65058
+ var valueMap = new Map();
65059
+ props.valueList.map(function (x) {
65060
+ valueMap.set(x.internalName, x);
65061
+ });
65062
+ setFieldValueMap(Object.fromEntries(valueMap));
65063
+ setChangedFieldValueMap(valueMap);
65064
+ }, [props.valueList]);
64948
65065
  var initComponentMap = function initComponentMap() {
64949
65066
  var map = props.componentMap.map(function (component) {
64950
65067
  return {
@@ -64954,7 +65071,8 @@ var Filter = function Filter(props) {
64954
65071
  label: componentProps.label,
64955
65072
  onDelete: props.onDeleteField,
64956
65073
  operatorList: props.operatorList,
64957
- conditionList: props.conditionList,
65074
+ defaultCondition: props.getDefaultCondition && props.getDefaultCondition(component.name),
65075
+ conditionList: props.getConditionList(component.name),
64958
65076
  content: {
64959
65077
  component: component.value,
64960
65078
  props: _extends({}, componentProps, {
@@ -64962,20 +65080,25 @@ var Filter = function Filter(props) {
64962
65080
  })
64963
65081
  },
64964
65082
  onChange: componentProps.onChange,
64965
- isShowOperatorSelect: true
65083
+ isShowOperatorSelect: componentProps.index ? true : false
64966
65084
  });
64967
65085
  }
64968
65086
  };
64969
65087
  });
64970
65088
  setComponentMap(map);
64971
65089
  };
65090
+ var onChange = function onChange(changedFieldValueMap) {
65091
+ setChangedFieldValueMap(changedFieldValueMap);
65092
+ props.onChange(changedFieldValueMap);
65093
+ };
64972
65094
  return React__default.createElement("div", {
64973
65095
  className: styles$N['vitro-filter']
64974
65096
  }, componentMap && React__default.createElement(FieldIterator, {
64975
65097
  fieldList: props.fieldList,
65098
+ fieldValueMap: fieldValueMap,
65099
+ changedFieldValueMap: changedFieldValueMap,
64976
65100
  componentMap: componentMap,
64977
- onChange: props.onChange,
64978
- isClearChangedFieldValueMap: true
65101
+ onChange: onChange
64979
65102
  }));
64980
65103
  };
64981
65104
 
@@ -65006,10 +65129,11 @@ var CheckboxList = function CheckboxList(props) {
65006
65129
  }
65007
65130
  };
65008
65131
  var getSelectedItemList = function getSelectedItemList() {
65009
- return itemList.map(function (item) {
65010
- if (item.value) {
65011
- return item.id;
65012
- }
65132
+ var selectedList = itemList.filter(function (item) {
65133
+ return item.value;
65134
+ });
65135
+ return selectedList.map(function (item) {
65136
+ return item.id;
65013
65137
  });
65014
65138
  };
65015
65139
  var onSearchCancel = function onSearchCancel() {
@@ -65039,7 +65163,7 @@ var CheckboxList = function CheckboxList(props) {
65039
65163
  }, React__default.createElement(Input$1, {
65040
65164
  onCancel: onSearchCancel,
65041
65165
  onChange: onInputChange,
65042
- onEnter: onInputChange,
65166
+ onSubmit: onInputChange,
65043
65167
  className: styles$O['vitro-control']
65044
65168
  }), React__default.createElement(ScrollBar, null, isShowSearchResult ? searchItemList.length ? searchItemList.map(function (item) {
65045
65169
  return getCheckbox(item);
@@ -65105,20 +65229,23 @@ var Search = function Search(props) {
65105
65229
  setIsShowAddFieldDialog(!isShowAddFieldDialog);
65106
65230
  };
65107
65231
  var onFieldListChange = function onFieldListChange(selectedFieldIdList) {
65108
- var newFieldList = [];
65109
65232
  var _loop = function _loop() {
65110
65233
  var id = _step.value;
65111
- var field = props.fieldList.find(function (field) {
65112
- return field.id === id;
65234
+ var field = filterFieldList.find(function (x) {
65235
+ return x.id === id;
65113
65236
  });
65114
- if (field) {
65115
- newFieldList.push(field);
65237
+ if (!field) {
65238
+ var newField = props.fieldList.find(function (x) {
65239
+ return x.id === id;
65240
+ });
65241
+ setFilterFieldList(function (prevState) {
65242
+ return [].concat(prevState, [newField]);
65243
+ });
65116
65244
  }
65117
65245
  };
65118
65246
  for (var _iterator = _createForOfIteratorHelperLoose(selectedFieldIdList), _step; !(_step = _iterator()).done;) {
65119
65247
  _loop();
65120
65248
  }
65121
- setFilterFieldList(newFieldList);
65122
65249
  };
65123
65250
  var closeSettings = function closeSettings() {
65124
65251
  setIsShowAddFieldDialog(false);
@@ -65197,7 +65324,7 @@ var Search = function Search(props) {
65197
65324
  valueList: selectedSearchCriterionList,
65198
65325
  onSettingsClick: onSettingsClick,
65199
65326
  onCancel: onCancel,
65200
- onEnter: onSubmit,
65327
+ onSubmit: onSubmit,
65201
65328
  onChange: onInputChange,
65202
65329
  placeholder: props.inputPlaceholder,
65203
65330
  isSettingsActive: isShowDialog,
@@ -65206,12 +65333,14 @@ var Search = function Search(props) {
65206
65333
  className: styles$N['vitro-settings-dialog']
65207
65334
  }, React__default.createElement(Filter, {
65208
65335
  fieldList: filterFieldList,
65336
+ valueList: selectedSearchCriterionList,
65209
65337
  onChange: onFilterChange,
65210
65338
  componentMap: props.componentMap,
65211
65339
  onDeleteField: onDeleteField,
65212
65340
  operatorList: props.operatorList,
65213
- conditionList: props.conditionList
65214
- }), React__default.createElement("div", {
65341
+ getConditionList: props.getConditionList,
65342
+ getDefaultCondition: props.getDefaultCondition
65343
+ }), filterFieldList.length < props.maxFieldCount && React__default.createElement("div", {
65215
65344
  className: styles$N['vitro-add-field']
65216
65345
  }, React__default.createElement(Button$2, {
65217
65346
  text: props.labelAddField,
@@ -65246,6 +65375,7 @@ exports.Alert = Alert$1;
65246
65375
  exports.Avatar = Avatar;
65247
65376
  exports.Breadcrumbs = Breadcrumbs;
65248
65377
  exports.Button = Button$2;
65378
+ exports.CONTROL = CONTROL;
65249
65379
  exports.Checkbox = Checkbox;
65250
65380
  exports.CommandMenu = CommandMenu;
65251
65381
  exports.CommandMenuButton = CommandMenuButton;