@eclipse-scout/core 22.0.0 → 22.0.10

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 (166) hide show
  1. package/dist/eclipse-scout-core-e5e8740e3649f5b9f279.min.js +2 -0
  2. package/dist/eclipse-scout-core-e5e8740e3649f5b9f279.min.js.map +1 -0
  3. package/dist/eclipse-scout-core-theme-74b63e0d57bed407a729.min.css +1 -0
  4. package/dist/eclipse-scout-core-theme-dark-b82aea152f416e38ce7f.min.css +1 -0
  5. package/dist/eclipse-scout-core-theme-dark.css +597 -422
  6. package/dist/eclipse-scout-core-theme-dark.css.map +1 -1
  7. package/dist/eclipse-scout-core-theme.css +333 -158
  8. package/dist/eclipse-scout-core-theme.css.map +1 -1
  9. package/dist/eclipse-scout-core.js +1196 -811
  10. package/dist/eclipse-scout-core.js.map +1 -1
  11. package/dist/file-list +7 -0
  12. package/dist/locales.json +47126 -0
  13. package/dist/texts.json +1153 -0
  14. package/package.json +2 -2
  15. package/src/App.js +1 -1
  16. package/src/ErrorHandler.js +66 -28
  17. package/src/{table/TableHeaderMenuButtonKeyStroke.js → action/ActionExecKeyStroke.js} +4 -5
  18. package/src/action/Button.less +1 -0
  19. package/src/box/Box.less +12 -8
  20. package/src/breadcrumbbar/BreadcrumbBarLayout.js +2 -2
  21. package/src/breadcrumbbar/BreadcrumbItem.less +3 -6
  22. package/src/calendar/Calendar.js +40 -58
  23. package/src/calendar/Calendar.less +10 -10
  24. package/src/calendar/CalendarLayout.js +3 -1
  25. package/src/checkbox/CheckBox.less +3 -1
  26. package/src/datepicker/DatePicker.less +1 -0
  27. package/src/datepicker/DatePickerTouchPopup.js +8 -0
  28. package/src/desktop/DisableBrowserF5ReloadKeyStroke.js +1 -0
  29. package/src/desktop/bench/DesktopTabSelectKeyStroke.js +2 -1
  30. package/src/desktop/desktoptab/DesktopTab.less +5 -2
  31. package/src/desktop/desktoptab/DesktopTabArea.less +7 -3
  32. package/src/desktop/desktoptab/DesktopTabAreaLayout.js +1 -1
  33. package/src/desktop/desktoptab/DisableBrowserTabSwitchingKeyStroke.js +1 -0
  34. package/src/desktop/navigation/DesktopNavigation.less +4 -0
  35. package/src/desktop/navigation/EnlargeNavigationKeyStroke.js +1 -0
  36. package/src/desktop/navigation/ShrinkNavigationKeyStroke.js +1 -0
  37. package/src/desktop/notification/DesktopNotification.js +11 -4
  38. package/src/desktop/notification/DesktopNotification.less +5 -3
  39. package/src/desktop/outline/Outline.less +4 -4
  40. package/src/desktop/viewbutton/ViewButton.less +18 -9
  41. package/src/desktop/viewbutton/ViewMenuPopupEnterKeyStroke.js +2 -1
  42. package/src/desktop/viewbutton/ViewMenuTab.less +3 -2
  43. package/src/filechooser/FileChooser.js +1 -1
  44. package/src/filechooser/FileChooser.less +16 -11
  45. package/src/focus/FocusContext.js +11 -8
  46. package/src/focus/FocusManager.js +24 -5
  47. package/src/form/Form.less +1 -0
  48. package/src/form/fields/LookupBox.js +5 -2
  49. package/src/form/fields/LookupBox.less +28 -2
  50. package/src/form/fields/TextFieldIcon.less +2 -2
  51. package/src/form/fields/ValueField.js +11 -2
  52. package/src/form/fields/breadcrumbbarfield/BreadcrumbBarField.less +20 -0
  53. package/src/form/fields/button/ButtonKeyStroke.js +0 -3
  54. package/src/form/fields/datefield/DateField.js +31 -47
  55. package/src/form/fields/filechooserfield/FileChooserFieldBrowseKeyStroke.js +1 -3
  56. package/src/form/fields/filechooserfield/FileChooserFieldDeleteKeyStroke.js +1 -3
  57. package/src/form/fields/groupbox/GroupBox.js +14 -9
  58. package/src/form/fields/groupbox/GroupBox.less +1 -0
  59. package/src/form/fields/htmlfield/HtmlField.less +0 -1
  60. package/src/form/fields/listbox/ListBox.js +13 -7
  61. package/src/form/fields/lookupfield/lookupField.js +6 -5
  62. package/src/form/fields/smartfield/ProposalField.js +2 -1
  63. package/src/form/fields/smartfield/ProposalTreeNode.js +4 -8
  64. package/src/form/fields/smartfield/SmartField.js +4 -20
  65. package/src/form/fields/smartfield/SmartField.less +24 -11
  66. package/src/form/fields/splitbox/SplitBoxCollapseKeyStroke.js +1 -0
  67. package/src/form/fields/splitbox/SplitBoxFirstCollapseKeyStroke.js +1 -0
  68. package/src/form/fields/splitbox/SplitBoxSecondCollapseKeyStroke.js +1 -0
  69. package/src/form/fields/tabbox/TabAreaLayout.js +63 -66
  70. package/src/form/fields/tabbox/TabAreaLeftKeyStroke.js +2 -0
  71. package/src/form/fields/tabbox/TabAreaRightKeyStroke.js +2 -0
  72. package/src/form/fields/tabbox/TabBox.js +8 -7
  73. package/src/form/fields/tabbox/TabBox.less +2 -1
  74. package/src/form/fields/tabbox/TabBoxHeader.js +4 -0
  75. package/src/form/fields/tabbox/TabBoxHeaderLayout.js +5 -5
  76. package/src/form/fields/tabbox/TabItem.js +4 -0
  77. package/src/form/fields/treebox/TreeBox.js +6 -5
  78. package/src/glasspane/GlassPane.js +3 -3
  79. package/src/group/Group.less +1 -1
  80. package/src/index.js +1 -1
  81. package/src/index.less +1 -0
  82. package/src/jquery/jquery-scout.js +17 -4
  83. package/src/keystroke/CloseKeyStroke.js +1 -0
  84. package/src/keystroke/ContextMenuKeyStroke.js +1 -0
  85. package/src/keystroke/FocusFilterFieldKeyStroke.js +1 -0
  86. package/src/keystroke/KeyStroke.js +11 -3
  87. package/src/keystroke/TabItemKeyStroke.js +8 -5
  88. package/src/logging/logging.js +16 -8
  89. package/src/login/LoginBox.js +3 -2
  90. package/src/login/LoginBox.less +27 -8
  91. package/src/menu/ContextMenuPopup.less +9 -2
  92. package/src/menu/Menu.less +1 -0
  93. package/src/menu/MenuExecKeyStroke.js +3 -17
  94. package/src/menu/MenuNavigationKeyStroke.js +1 -0
  95. package/src/menu/menubar/MenuBarLeftKeyStroke.js +2 -0
  96. package/src/menu/menubar/MenuBarRightKeyStroke.js +2 -0
  97. package/src/messagebox/MessageBox.less +20 -20
  98. package/src/modeselector/Mode.less +15 -37
  99. package/src/modeselector/ModeSelector.js +1 -1
  100. package/src/modeselector/ModeSelector.less +2 -1
  101. package/src/planner/Planner.js +2 -0
  102. package/src/planner/PlannerHeader.less +2 -1
  103. package/src/popup/Popup.js +24 -8
  104. package/src/popup/PopupLayout.js +2 -8
  105. package/src/scrollbar/Scrollbar.less +8 -1
  106. package/src/scrollbar/scrollbars.js +26 -4
  107. package/src/session/Session.js +8 -5
  108. package/src/style/colors-dark.less +25 -11
  109. package/src/style/colors.less +17 -3
  110. package/src/style/fonts.less +10 -1
  111. package/src/style/mixins.less +21 -14
  112. package/src/style/sizes-dark.less +4 -1
  113. package/src/style/sizes.less +17 -9
  114. package/src/table/Table.js +63 -49
  115. package/src/table/Table.less +50 -20
  116. package/src/table/TableAdapter.js +9 -12
  117. package/src/table/TableHeader.js +10 -8
  118. package/src/table/TableHeader.less +1 -0
  119. package/src/table/TableHeaderMenu.js +3 -1
  120. package/src/table/TableHeaderMenu.less +7 -2
  121. package/src/table/TableHeaderMenuButton.js +2 -2
  122. package/src/table/TableLayout.js +6 -0
  123. package/src/table/columns/BooleanColumn.js +2 -2
  124. package/src/table/columns/Column.js +10 -7
  125. package/src/table/columns/ColumnOptimalWidthMeasurer.js +1 -1
  126. package/src/table/editor/CellEditorPopup.js +29 -15
  127. package/src/table/keystrokes/AbstractTableNavigationKeyStroke.js +1 -0
  128. package/src/table/keystrokes/TableCopyKeyStroke.js +1 -0
  129. package/src/table/keystrokes/TableNavigationCollapseKeyStroke.js +2 -2
  130. package/src/table/keystrokes/TableNavigationEndKeyStroke.js +2 -2
  131. package/src/table/keystrokes/TableNavigationExpandKeyStroke.js +2 -2
  132. package/src/table/keystrokes/TableNavigationHomeKeyStroke.js +2 -2
  133. package/src/table/keystrokes/TableNavigationPageDownKeyStroke.js +2 -2
  134. package/src/table/keystrokes/TableNavigationPageUpKeyStroke.js +2 -2
  135. package/src/table/keystrokes/TableNavigationUpKeyStroke.js +2 -2
  136. package/src/table/keystrokes/TableRefreshKeyStroke.js +2 -2
  137. package/src/table/keystrokes/TableSelectAllKeyStroke.js +3 -2
  138. package/src/table/keystrokes/TableStartCellEditKeyStroke.js +2 -2
  139. package/src/tagbar/TagBarOverflowPopupLayout.js +1 -1
  140. package/src/testing/index.js +1 -0
  141. package/src/testing/lookup/AbortableMicrotaskStaticLookupCall.js +50 -0
  142. package/src/tile/TileGrid.js +10 -12
  143. package/src/tile/TileGridLayout.js +2 -2
  144. package/src/tile/accordion/TileAccordion.js +16 -1
  145. package/src/tile/fields/FormFieldTile.less +18 -11
  146. package/src/tile/fields/button/ButtonTile.js +1 -1
  147. package/src/tile/fields/tablefield/TileTableField.less +19 -2
  148. package/src/tile/keystrokes/TileGridSelectKeyStroke.js +3 -2
  149. package/src/timepicker/TimePickerTouchPopup.js +8 -0
  150. package/src/tree/CompactTree.less +1 -1
  151. package/src/tree/LazyNodeFilter.js +4 -2
  152. package/src/tree/Tree.js +7 -5
  153. package/src/tree/Tree.less +13 -5
  154. package/src/tree/keystrokes/AbstractTreeNavigationKeyStroke.js +1 -0
  155. package/src/tree/keystrokes/TreeCollapseAllKeyStroke.js +2 -2
  156. package/src/tree/keystrokes/TreeExpandOrDrillDownKeyStroke.js +2 -2
  157. package/src/tree/keystrokes/TreeNavigationDownKeyStroke.js +2 -2
  158. package/src/tree/keystrokes/TreeNavigationEndKeyStroke.js +2 -2
  159. package/src/tree/keystrokes/TreeNavigationUpKeyStroke.js +2 -2
  160. package/src/util/Device.js +4 -4
  161. package/src/util/arrays.js +44 -2
  162. package/src/util/dragAndDrop.js +5 -4
  163. package/src/util/events.js +1 -1
  164. package/src/util/objects.js +4 -1
  165. package/src/widget/FilterSupport.js +1 -1
  166. package/src/widget/Widget.js +17 -7
@@ -8,29 +8,7 @@
8
8
  * Contributors:
9
9
  * BSI Business Systems Integration AG - initial API and implementation
10
10
  */
11
- import {
12
- arrays,
13
- DateFormat,
14
- DatePickerPopup,
15
- DatePredictionFailedStatus,
16
- dates,
17
- DateTimeCompositeLayout,
18
- Device,
19
- fields,
20
- focusUtils,
21
- FormField,
22
- HtmlComponent,
23
- InputFieldKeyStrokeContext,
24
- keys,
25
- objects,
26
- ParsingFailedStatus,
27
- scout,
28
- Status,
29
- strings,
30
- styles,
31
- TimePickerPopup,
32
- ValueField
33
- } from '../../../index';
11
+ import {arrays, DateFormat, DatePickerPopup, DatePredictionFailedStatus, dates, DateTimeCompositeLayout, Device, fields, focusUtils, FormField, HtmlComponent, InputFieldKeyStrokeContext, keys, objects, ParsingFailedStatus, scout, Status, strings, styles, TimePickerPopup, ValueField} from '../../../index';
34
12
  import $ from 'jquery';
35
13
 
36
14
  export default class DateField extends ValueField {
@@ -695,7 +673,7 @@ export default class DateField extends ValueField {
695
673
  }
696
674
 
697
675
  _renderDateClearable() {
698
- if (this.hasDate || this.isClearable()) {
676
+ if (this.hasDate && this.isClearable()) {
699
677
  if (!this.$dateClearIcon) {
700
678
  // date clear icon
701
679
  this.$dateClearIcon = this.$field.appendSpan('icon date-clear unfocusable text-field-icon action')
@@ -711,14 +689,18 @@ export default class DateField extends ValueField {
711
689
  }
712
690
 
713
691
  _renderTimeClearable() {
714
- if (this.hasTime && this.isClearable() && !this.$timeClearIcon) {
715
- // date clear icon
716
- this.$timeClearIcon = this.$field.appendSpan('icon time-clear unfocusable text-field-icon action')
717
- .on('mousedown', this._onTimeClearIconMouseDown.bind(this));
718
- } else if ((!this.hasTime || !this.isClearable()) && this.$timeClearIcon) {
719
- // Remove $dateField
720
- this.$timeClearIcon.remove();
721
- this.$timeClearIcon = null;
692
+ if (this.hasTime && this.isClearable()) {
693
+ if (!this.$timeClearIcon) {
694
+ // time clear icon
695
+ this.$timeClearIcon = this.$field.appendSpan('icon time-clear unfocusable text-field-icon action')
696
+ .on('mousedown', this._onTimeClearIconMouseDown.bind(this));
697
+ }
698
+ } else {
699
+ if (this.$timeClearIcon) {
700
+ // Remove clear icon
701
+ this.$timeClearIcon.remove();
702
+ this.$timeClearIcon = null;
703
+ }
722
704
  }
723
705
  }
724
706
 
@@ -1192,21 +1174,19 @@ export default class DateField extends ValueField {
1192
1174
  }
1193
1175
 
1194
1176
  _onDatePickerDateSelect(event) {
1195
- this._setDateValid(true);
1196
- this._setTimeValid(true);
1197
- let newValue = this._newTimestampAsDate(event.date, this.value);
1198
- this.setValue(newValue);
1199
- this.closePopup();
1200
- this._triggerAcceptInput();
1177
+ this._setNewDateTimeValue(this._newTimestampAsDate(event.date, this.value));
1201
1178
  }
1202
1179
 
1203
1180
  _onTimePickerTimeSelect(event) {
1181
+ this._setNewDateTimeValue(this._newTimestampAsDate(this.value, event.time));
1182
+ }
1183
+
1184
+ _setNewDateTimeValue(newValue) {
1204
1185
  this._setDateValid(true);
1205
1186
  this._setTimeValid(true);
1206
- let newValue = this._newTimestampAsDate(this.value, event.time);
1207
1187
  this.setValue(newValue);
1208
- this.closePopup();
1209
1188
  this._triggerAcceptInput();
1189
+ this.closePopup();
1210
1190
  }
1211
1191
 
1212
1192
  _createPredictionField($inputField) {
@@ -1385,10 +1365,12 @@ export default class DateField extends ValueField {
1385
1365
  this.popup = this.createDatePopup();
1386
1366
  this.popup.open();
1387
1367
  this.$dateField.addClass('focused');
1388
- this.popup.on('remove', event => {
1389
- this._onPopupRemove(event);
1390
- this.popup = null;
1368
+ this.popup.one('destroy', event => {
1369
+ // Removing the class must happen before _onPopupDestroy() is called, otherwise the date field no longer exists,
1370
+ // because in touch mode _onPopupDestroy() destroys the date field.
1391
1371
  this.$dateField.removeClass('focused');
1372
+ this._onPopupDestroy(event);
1373
+ this.popup = null;
1392
1374
  });
1393
1375
  this.getDatePicker().on('dateSelect', this._onDatePickerDateSelect.bind(this));
1394
1376
  }
@@ -1416,10 +1398,12 @@ export default class DateField extends ValueField {
1416
1398
  this.popup = this.createTimePopup();
1417
1399
  this.popup.open();
1418
1400
  this.$timeField.addClass('focused');
1419
- this.popup.on('remove', event => {
1420
- this._onPopupRemove(event);
1421
- this.popup = null;
1401
+ this.popup.one('destroy', event => {
1402
+ // Removing the class must happen before _onPopupDestroy() is called, otherwise the date field no longer exists,
1403
+ // because in touch mode _onPopupDestroy() destroys the date field.
1422
1404
  this.$timeField.removeClass('focused');
1405
+ this._onPopupDestroy(event);
1406
+ this.popup = null;
1423
1407
  });
1424
1408
  this.getTimePicker().on('timeSelect', this._onTimePickerTimeSelect.bind(this));
1425
1409
  }
@@ -1686,7 +1670,7 @@ export default class DateField extends ValueField {
1686
1670
  }
1687
1671
  }
1688
1672
 
1689
- _onPopupRemove(event) {
1673
+ _onPopupDestroy(event) {
1690
1674
  if (!this.touchMode || !this._cellEditorPopup) {
1691
1675
  return;
1692
1676
  }
@@ -19,9 +19,7 @@ export default class FileChooserFieldBrowseKeyStroke extends KeyStroke {
19
19
  this.stopPropagation = true;
20
20
 
21
21
  this.renderingHints.hAlign = HAlign.LEFT;
22
- this.renderingHints.$drawingArea = function($drawingArea, event) {
23
- return this.field.$fieldContainer;
24
- }.bind(this);
22
+ this.renderingHints.$drawingArea = ($drawingArea, event) => this.field.$fieldContainer;
25
23
  }
26
24
 
27
25
  /**
@@ -20,9 +20,7 @@ export default class FileChooserFieldDeleteKeyStroke extends KeyStroke {
20
20
 
21
21
  this.renderingHints.offset = 25;
22
22
  this.renderingHints.hAlign = HAlign.RIGHT;
23
- this.renderingHints.$drawingArea = function($drawingArea, event) {
24
- return this.field.$fieldContainer;
25
- }.bind(this);
23
+ this.renderingHints.$drawingArea = ($drawingArea, event) => this.field.$fieldContainer;
26
24
  }
27
25
 
28
26
  /**
@@ -42,6 +42,7 @@ export default class GroupBox extends CompositeField {
42
42
  this.processButtons = [];
43
43
  this.processMenus = [];
44
44
  this.staticMenus = [];
45
+ this.selectionKeystroke = null;
45
46
  this.responsive = null;
46
47
 
47
48
  this.$header = null;
@@ -162,12 +163,12 @@ export default class GroupBox extends CompositeField {
162
163
  render: () => true,
163
164
  offset: 0,
164
165
  hAlign: HAlign.RIGHT,
165
- $drawingArea: function($drawingArea, event) {
166
- if (this.labelVisible) {
166
+ $drawingArea: ($drawingArea, event) => {
167
+ if (this.$header && this.$header.isVisible()) {
167
168
  return this.$header;
168
169
  }
169
170
  return this.$body;
170
- }.bind(this)
171
+ }
171
172
  };
172
173
 
173
174
  keyStrokes
@@ -360,14 +361,11 @@ export default class GroupBox extends CompositeField {
360
361
  this.$container.toggleClass('has-scroll-shadow-bottom', hasScrollShadowBottom);
361
362
  if ((headerVisible || hasMenubarTop) && oldHasScrollShadowTop !== hasScrollShadowTop
362
363
  || hasMenubarBottom && oldHasScrollShadowBottom !== hasScrollShadowBottom) {
363
- this.invalidateLayout();
364
+ this.invalidateLayoutTree(false);
364
365
  }
365
366
 
366
367
  // Enlarge header line if there is a shadow, but don't do it if there is a menubar on top
367
368
  fields.adjustStatusPositionForScrollShadow(this, () => hasScrollShadowTop && headerVisible && !hasMenubarTop);
368
-
369
- // Prevent flickering of status icon
370
- this.validateLayout();
371
369
  }
372
370
 
373
371
  setMainBox(mainBox) {
@@ -782,9 +780,16 @@ export default class GroupBox extends CompositeField {
782
780
  }
783
781
 
784
782
  _onControlClick(event) {
785
- if (this.expandable) {
786
- this.setExpanded(!this.expanded);
783
+ if (!this.expandable) {
784
+ return;
787
785
  }
786
+ const target = scout.widget(event.target);
787
+ if (this.menuBarPosition === GroupBox.MenuBarPosition.TITLE && this.menuBar.has(target)) {
788
+ // If the position of the menubar is set to title and a menu has been clicked, then the event must not be handled
789
+ return;
790
+ }
791
+
792
+ this.setExpanded(!this.expanded);
788
793
  $.suppressEvent(event); // otherwise, the event would be triggered twice sometimes (by group-box-control and group-box-title)
789
794
  }
790
795
 
@@ -120,6 +120,7 @@
120
120
  vertical-align: middle;
121
121
  padding: @group-box-title-padding-top 0 @group-box-title-padding-bottom 0;
122
122
  max-width: 100%;
123
+ margin-top: @text-margin-top;
123
124
 
124
125
  .group-box.has-sub-label > & {
125
126
  padding-bottom: @group-box-title-with-sub-label-padding-bottom;
@@ -19,7 +19,6 @@
19
19
 
20
20
  & > .field {
21
21
  margin-left: @mandatory-indicator-width;
22
- overflow: hidden;
23
22
 
24
23
  &:focus {
25
24
  outline: none;
@@ -1,14 +1,14 @@
1
1
  /*
2
- * Copyright (c) 2014-2017 BSI Business Systems Integration AG.
2
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
3
3
  * All rights reserved. This program and the accompanying materials
4
4
  * are made available under the terms of the Eclipse Public License v1.0
5
5
  * which accompanies this distribution, and is available at
6
- * http://www.eclipse.org/legal/epl-v10.html
6
+ * https://www.eclipse.org/legal/epl-v10.html
7
7
  *
8
8
  * Contributors:
9
9
  * BSI Business Systems Integration AG - initial API and implementation
10
10
  */
11
- import {arrays, ListBoxLayout, LookupBox, scout, Table, ValueField} from '../../../index';
11
+ import {arrays, ListBoxLayout, LookupBox, scout, Table} from '../../../index';
12
12
 
13
13
  export default class ListBox extends LookupBox {
14
14
 
@@ -17,7 +17,6 @@ export default class ListBox extends LookupBox {
17
17
 
18
18
  this.table = null;
19
19
  this.lookupStatus = null;
20
- this.clearable = ValueField.Clearable.NEVER;
21
20
 
22
21
  this._addWidgetProperties(['table', 'filterBox']);
23
22
  }
@@ -32,6 +31,12 @@ export default class ListBox extends LookupBox {
32
31
  if (!this.table) {
33
32
  this.table = this._createDefaultListBoxTable();
34
33
  }
34
+
35
+ // align checkableColumn in table with checkboxes of tree fields
36
+ if (this.table.checkableColumn) { // may be null if a non-default list-box-table with checkable=false is used
37
+ this.table.checkableColumn.minWidth = 28;
38
+ this.table.checkableColumn.width = this.table.checkableColumn.minWidth; // do not use setWidth here
39
+ }
35
40
  }
36
41
 
37
42
  _render() {
@@ -174,12 +179,13 @@ export default class ListBox extends LookupBox {
174
179
  if (lookupRow.enabled === false) {
175
180
  row.enabled = false;
176
181
  }
177
- if (lookupRow.active === false) {
178
- row.active = false;
179
- }
180
182
  if (lookupRow.cssClass) {
181
183
  row.cssClass = lookupRow.cssClass;
182
184
  }
185
+ if (lookupRow.active === false) {
186
+ row.active = false;
187
+ row.cssClass = (row.cssClass ? (row.cssClass + ' ') : '') + 'inactive';
188
+ }
183
189
 
184
190
  return row;
185
191
  }
@@ -1,9 +1,9 @@
1
1
  /*
2
- * Copyright (c) 2014-2018 BSI Business Systems Integration AG.
2
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
3
3
  * All rights reserved. This program and the accompanying materials
4
4
  * are made available under the terms of the Eclipse Public License v1.0
5
5
  * which accompanies this distribution, and is available at
6
- * http://www.eclipse.org/legal/epl-v10.html
6
+ * https://www.eclipse.org/legal/epl-v10.html
7
7
  *
8
8
  * Contributors:
9
9
  * BSI Business Systems Integration AG - initial API and implementation
@@ -25,12 +25,13 @@ export function createTableRow(lookupRow, multipleColumns) {
25
25
  if (lookupRow.enabled === false) {
26
26
  row.enabled = false;
27
27
  }
28
- if (lookupRow.active === false) {
29
- row.active = false;
30
- }
31
28
  if (lookupRow.cssClass) {
32
29
  row.cssClass = lookupRow.cssClass;
33
30
  }
31
+ if (lookupRow.active === false) {
32
+ row.active = false;
33
+ row.cssClass = (row.cssClass ? (row.cssClass + ' ') : '') + 'inactive';
34
+ }
34
35
 
35
36
  if (!multipleColumns) {
36
37
  cells.push(createTableCell(lookupRow, null, null));
@@ -189,11 +189,12 @@ export default class ProposalField extends SmartField {
189
189
  // this causes a lookup which may fail and open a new proposal chooser (property
190
190
  // change for 'result').
191
191
  if (searchTextChanged) {
192
+ this.clearErrorStatus();
192
193
  this._acceptByText(sync, searchText);
193
194
  } else if (!this._hasUiError()) {
194
195
  this._inputAccepted(false);
195
196
  } else {
196
- // even though there's nothing todo, someone could wait for our promise to be resolved
197
+ // even though there's nothing to do, someone could wait for our promise to be resolved
197
198
  this._acceptInputDeferred.resolve();
198
199
  }
199
200
 
@@ -1,9 +1,9 @@
1
1
  /*
2
- * Copyright (c) 2014-2018 BSI Business Systems Integration AG.
2
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
3
3
  * All rights reserved. This program and the accompanying materials
4
4
  * are made available under the terms of the Eclipse Public License v1.0
5
5
  * which accompanies this distribution, and is available at
6
- * http://www.eclipse.org/legal/epl-v10.html
6
+ * https://www.eclipse.org/legal/epl-v10.html
7
7
  *
8
8
  * Contributors:
9
9
  * BSI Business Systems Integration AG - initial API and implementation
@@ -22,14 +22,10 @@ export default class ProposalTreeNode extends TreeNode {
22
22
  }
23
23
 
24
24
  _renderText() {
25
- let text = this.text;
26
- if (this.lookupRow.active === false) {
27
- text += ' (' + this.session.text('InactiveState') + ')';
28
- }
29
25
  if (this.htmlEnabled) {
30
- this.$text.html(text);
26
+ this.$text.html(this.text);
31
27
  } else {
32
- this.$text.textOrNbsp(text);
28
+ this.$text.textOrNbsp(this.text);
33
29
  }
34
30
  }
35
31
 
@@ -1,31 +1,14 @@
1
1
  /*
2
- * Copyright (c) 2010-2021 BSI Business Systems Integration AG.
2
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
3
3
  * All rights reserved. This program and the accompanying materials
4
4
  * are made available under the terms of the Eclipse Public License v1.0
5
5
  * which accompanies this distribution, and is available at
6
- * http://www.eclipse.org/legal/epl-v10.html
6
+ * https://www.eclipse.org/legal/epl-v10.html
7
7
  *
8
8
  * Contributors:
9
9
  * BSI Business Systems Integration AG - initial API and implementation
10
10
  */
11
- import {
12
- arrays,
13
- Device,
14
- fields,
15
- FormField,
16
- InputFieldKeyStrokeContext,
17
- keys,
18
- LookupCall,
19
- objects,
20
- QueryBy,
21
- scout,
22
- SimpleLoadingSupport,
23
- SmartFieldCancelKeyStroke,
24
- SmartFieldLayout,
25
- Status,
26
- strings,
27
- ValueField
28
- } from '../../../index';
11
+ import {arrays, Device, fields, FormField, InputFieldKeyStrokeContext, keys, LookupCall, objects, QueryBy, scout, SimpleLoadingSupport, SmartFieldCancelKeyStroke, SmartFieldLayout, Status, strings, ValueField} from '../../../index';
29
12
  import $ from 'jquery';
30
13
 
31
14
  export default class SmartField extends ValueField {
@@ -932,6 +915,7 @@ export default class SmartField extends ValueField {
932
915
  });
933
916
 
934
917
  this.popup.open();
918
+ this.popup.$container.css('--inactive-lookup-row-suffix-text', `'${this.session.text('InactiveState')}'`);
935
919
 
936
920
  /* This variable is required to route events to the right field:
937
921
  * - in normal mode popup events should be processed by the normal smart-field
@@ -1,9 +1,9 @@
1
1
  /*
2
- * Copyright (c) 2014-2018 BSI Business Systems Integration AG.
2
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
3
3
  * All rights reserved. This program and the accompanying materials
4
4
  * are made available under the terms of the Eclipse Public License v1.0
5
5
  * which accompanies this distribution, and is available at
6
- * http://www.eclipse.org/legal/epl-v10.html
6
+ * https://www.eclipse.org/legal/epl-v10.html
7
7
  *
8
8
  * Contributors:
9
9
  * BSI Business Systems Integration AG - initial API and implementation
@@ -266,13 +266,23 @@
266
266
  & > .table-data {
267
267
  padding: @proposal-chooser-padding-y @proposal-chooser-padding-x;
268
268
 
269
- & > .table-row.first {
270
- border-top: 1px solid @table-row-border-color;
269
+ & > .table-row {
270
+ &.first {
271
+ border-top: 1px solid @table-row-border-color;
271
272
 
272
- &.selected::after {
273
- // If header is invisible, selection of first row starts at 0
274
- // Since we now have a top border we can move it to -1px again to cover the border
275
- top: -1px;
273
+ &.selected::after {
274
+ // If header is invisible, selection of first row starts at 0
275
+ // Since we now have a top border we can move it to -1px again to cover the border
276
+ top: -1px;
277
+ }
278
+ }
279
+
280
+ &.inactive {
281
+ font-style: italic;
282
+
283
+ & > .table-cell.last > .text::after {
284
+ content: ' (' var(--inactive-lookup-row-suffix-text) ')';
285
+ }
276
286
  }
277
287
  }
278
288
 
@@ -286,9 +296,12 @@
286
296
  & > .tree-data {
287
297
  padding: @proposal-chooser-padding-y @proposal-chooser-padding-x;
288
298
 
289
- & > .tree-node {
290
- &.inactive {
291
- font-style: italic;
299
+ & > .tree-node.inactive,
300
+ & > .animation-wrapper > .tree-node.inactive {
301
+ font-style: italic;
302
+
303
+ & > .text::after {
304
+ content: ' (' var(--inactive-lookup-row-suffix-text) ')';
292
305
  }
293
306
  }
294
307
  }
@@ -16,6 +16,7 @@ export default class SplitBoxCollapseKeyStroke extends KeyStroke {
16
16
  super();
17
17
  this.field = splitBox;
18
18
  this.parseAndSetKeyStroke(keyStroke);
19
+ this.inheritAccessibility = false;
19
20
  }
20
21
 
21
22
  handle(event) {
@@ -16,6 +16,7 @@ export default class SplitBoxFirstCollapseKeyStroke extends KeyStroke {
16
16
  super();
17
17
  this.field = splitBox;
18
18
  this.parseAndSetKeyStroke(keyStroke);
19
+ this.inheritAccessibility = false;
19
20
  }
20
21
 
21
22
  handle(event) {
@@ -16,6 +16,7 @@ export default class SplitBoxSecondCollapseKeyStroke extends KeyStroke {
16
16
  super();
17
17
  this.field = splitBox;
18
18
  this.parseAndSetKeyStroke(keyStroke);
19
+ this.inheritAccessibility = false;
19
20
  }
20
21
 
21
22
  handle(event) {