@eclipse-scout/core 22.0.1 → 22.0.2
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.
- package/dist/eclipse-scout-core-c98fb5230e71dcec75ce.min.js +2 -0
- package/dist/eclipse-scout-core-c98fb5230e71dcec75ce.min.js.map +1 -0
- package/dist/eclipse-scout-core-theme-6b2fef56e9e49231a49c.min.css +1 -0
- package/dist/eclipse-scout-core-theme-dark-d2bb274dd42f132bfca0.min.css +1 -0
- package/dist/eclipse-scout-core-theme-dark.css +367 -312
- package/dist/eclipse-scout-core-theme-dark.css.map +1 -1
- package/dist/eclipse-scout-core-theme.css +150 -95
- package/dist/eclipse-scout-core-theme.css.map +1 -1
- package/dist/eclipse-scout-core.js +371 -204
- package/dist/eclipse-scout-core.js.map +1 -1
- package/dist/file-list +7 -0
- package/dist/locales.json +47126 -0
- package/dist/texts.json +1153 -0
- package/package.json +2 -2
- package/src/action/Button.less +1 -0
- package/src/calendar/Calendar.js +40 -58
- package/src/calendar/Calendar.less +10 -10
- package/src/calendar/CalendarLayout.js +3 -1
- package/src/datepicker/DatePicker.less +1 -0
- package/src/desktop/desktoptab/DesktopTab.less +5 -2
- package/src/desktop/desktoptab/DesktopTabArea.less +7 -3
- package/src/desktop/navigation/DesktopNavigation.less +4 -0
- package/src/desktop/notification/DesktopNotification.js +11 -4
- package/src/desktop/notification/DesktopNotification.less +5 -3
- package/src/desktop/outline/Outline.less +4 -4
- package/src/desktop/viewbutton/ViewButton.less +13 -9
- package/src/desktop/viewbutton/ViewMenuTab.less +3 -2
- package/src/filechooser/FileChooser.less +1 -1
- package/src/form/Form.less +1 -0
- package/src/form/fields/LookupBox.js +2 -1
- package/src/form/fields/breadcrumbbarfield/BreadcrumbBarField.less +14 -0
- package/src/form/fields/groupbox/GroupBox.js +13 -9
- package/src/form/fields/groupbox/GroupBox.less +1 -0
- package/src/form/fields/htmlfield/HtmlField.less +0 -1
- package/src/form/fields/listbox/ListBox.js +8 -3
- package/src/form/fields/tabbox/TabAreaLayout.js +63 -66
- package/src/form/fields/tabbox/TabBox.js +4 -7
- package/src/form/fields/tabbox/TabBox.less +2 -1
- package/src/form/fields/tabbox/TabBoxHeaderLayout.js +5 -5
- package/src/glasspane/GlassPane.js +3 -3
- package/src/group/Group.less +1 -1
- package/src/index.less +1 -0
- package/src/jquery/jquery-scout.js +5 -4
- package/src/menu/ContextMenuPopup.less +9 -2
- package/src/menu/Menu.less +1 -0
- package/src/modeselector/Mode.less +15 -37
- package/src/modeselector/ModeSelector.js +1 -1
- package/src/modeselector/ModeSelector.less +2 -1
- package/src/planner/PlannerHeader.less +2 -1
- package/src/popup/Popup.js +24 -8
- package/src/popup/PopupLayout.js +2 -8
- package/src/scrollbar/Scrollbar.less +8 -1
- package/src/scrollbar/scrollbars.js +26 -4
- package/src/style/colors-dark.less +17 -10
- package/src/style/colors.less +11 -3
- package/src/style/fonts.less +5 -0
- package/src/style/mixins.less +16 -12
- package/src/style/sizes-dark.less +4 -1
- package/src/style/sizes.less +3 -4
- package/src/table/Table.js +37 -29
- package/src/table/Table.less +36 -13
- package/src/table/TableHeader.js +10 -8
- package/src/table/TableHeader.less +1 -0
- package/src/table/TableHeaderMenu.js +3 -1
- package/src/table/TableHeaderMenu.less +7 -2
- package/src/table/columns/BooleanColumn.js +2 -2
- package/src/table/columns/Column.js +3 -3
- package/src/table/editor/CellEditorPopup.js +8 -1
- package/src/tile/TileGrid.js +1 -1
- package/src/tile/TileGridLayout.js +2 -2
- package/src/tile/accordion/TileAccordion.js +16 -1
- package/src/tile/fields/FormFieldTile.less +18 -11
- package/src/tree/CompactTree.less +1 -1
- package/src/tree/Tree.less +1 -3
- package/src/util/arrays.js +24 -2
- package/src/util/objects.js +4 -1
- package/src/widget/Widget.js +11 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eclipse-scout/core",
|
|
3
|
-
"version": "22.0.
|
|
3
|
+
"version": "22.0.2",
|
|
4
4
|
"description": "Eclipse Scout runtime",
|
|
5
5
|
"author": "BSI Business Systems Integration AG",
|
|
6
6
|
"homepage": "https://www.eclipse.org/scout",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"src"
|
|
27
27
|
],
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@eclipse-scout/cli": "22.0.
|
|
29
|
+
"@eclipse-scout/cli": "22.0.2",
|
|
30
30
|
"@eclipse-scout/releng": "^22.0.0",
|
|
31
31
|
"jasmine-core": "3.10.1",
|
|
32
32
|
"jasmine-ajax": "4.0.0",
|
package/src/action/Button.less
CHANGED
package/src/calendar/Calendar.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c) 2010-
|
|
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
|
|
@@ -8,27 +8,7 @@
|
|
|
8
8
|
* Contributors:
|
|
9
9
|
* BSI Business Systems Integration AG - initial API and implementation
|
|
10
10
|
*/
|
|
11
|
-
import {
|
|
12
|
-
CalendarComponent,
|
|
13
|
-
CalendarLayout,
|
|
14
|
-
CalendarListComponent,
|
|
15
|
-
DateRange,
|
|
16
|
-
dates,
|
|
17
|
-
Device,
|
|
18
|
-
events,
|
|
19
|
-
GroupBox,
|
|
20
|
-
HtmlComponent,
|
|
21
|
-
KeyStrokeContext,
|
|
22
|
-
menus,
|
|
23
|
-
numbers,
|
|
24
|
-
objects,
|
|
25
|
-
Point,
|
|
26
|
-
Range,
|
|
27
|
-
scout,
|
|
28
|
-
scrollbars,
|
|
29
|
-
strings,
|
|
30
|
-
Widget
|
|
31
|
-
} from '../index';
|
|
11
|
+
import {CalendarComponent, CalendarLayout, CalendarListComponent, DateRange, dates, Device, events, GroupBox, HtmlComponent, KeyStrokeContext, menus, numbers, objects, Point, Range, scout, scrollbars, strings, Widget} from '../index';
|
|
32
12
|
import $ from 'jquery';
|
|
33
13
|
|
|
34
14
|
export default class Calendar extends Widget {
|
|
@@ -759,11 +739,9 @@ export default class Calendar extends Widget {
|
|
|
759
739
|
this.$topGrid.find('.calendar-day-name').data('new-width', 0);
|
|
760
740
|
this.$grids.find('.calendar-day').data('new-width', 0);
|
|
761
741
|
let newWidthWorkWeek = Math.round(contentW / this.workDayIndices.length);
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
$('.calendar-day:nth-child(-n+6)', this.$grid)
|
|
766
|
-
.data('new-width', newWidthWorkWeek);
|
|
742
|
+
this.$topGrid.find('.calendar-day-name').slice(0, 5).data('new-width', newWidthWorkWeek);
|
|
743
|
+
this.$topGrid.find('.calendar-day').slice(0, 5).data('new-width', newWidthWorkWeek);
|
|
744
|
+
$('.calendar-day:nth-child(-n+6)', this.$grid).data('new-width', newWidthWorkWeek);
|
|
767
745
|
this.widthPerDivision = newWidthWorkWeek;
|
|
768
746
|
} else if (this._isMonth() || this._isWeek()) {
|
|
769
747
|
let newWidthMonthOrWeek = Math.round(contentW / 7);
|
|
@@ -781,21 +759,26 @@ export default class Calendar extends Widget {
|
|
|
781
759
|
});
|
|
782
760
|
}
|
|
783
761
|
|
|
784
|
-
let afterLayoutCallback = this._afterLayout.bind(this);
|
|
785
|
-
|
|
786
762
|
// animate old to new sizes
|
|
787
|
-
$('div', this.$container).each(
|
|
788
|
-
let $e = $(
|
|
789
|
-
|
|
790
|
-
|
|
763
|
+
$('div', this.$container).each((i, elem) => {
|
|
764
|
+
let $e = $(elem);
|
|
765
|
+
let w = $e.data('new-width');
|
|
766
|
+
let h = $e.data('new-height');
|
|
791
767
|
$e.stop(false, true);
|
|
792
768
|
|
|
793
769
|
if (w !== undefined && w !== $e.outerWidth()) {
|
|
794
770
|
if (animate) {
|
|
795
|
-
|
|
771
|
+
let opts = {
|
|
772
|
+
complete: () => this._afterLayout($e, animate)
|
|
773
|
+
};
|
|
774
|
+
if ($e[0] === this.$grids[0]) {
|
|
775
|
+
// Grid contains scroll shadows that should be updated during animation (don't due it always for performance reasons)
|
|
776
|
+
opts.progress = () => this._afterLayout($e, animate);
|
|
777
|
+
}
|
|
778
|
+
$e.animate({width: w}, opts);
|
|
796
779
|
} else {
|
|
797
780
|
$e.css('width', w);
|
|
798
|
-
|
|
781
|
+
this._afterLayout($e, animate);
|
|
799
782
|
}
|
|
800
783
|
}
|
|
801
784
|
if (h !== undefined && h !== $e.outerHeight()) {
|
|
@@ -807,14 +790,14 @@ export default class Calendar extends Widget {
|
|
|
807
790
|
if (h === 0) {
|
|
808
791
|
$e.addClass('hidden');
|
|
809
792
|
}
|
|
810
|
-
|
|
793
|
+
this._afterLayout($e, animate);
|
|
811
794
|
});
|
|
812
795
|
} else {
|
|
813
796
|
$e.css('height', h);
|
|
814
797
|
if (h === 0) {
|
|
815
798
|
$e.addClass('hidden');
|
|
816
799
|
}
|
|
817
|
-
|
|
800
|
+
this._afterLayout($e, animate);
|
|
818
801
|
}
|
|
819
802
|
}
|
|
820
803
|
});
|
|
@@ -853,13 +836,18 @@ export default class Calendar extends Widget {
|
|
|
853
836
|
|
|
854
837
|
_updateScrollbars($parent, animate) {
|
|
855
838
|
let $scrollables = $('.calendar-scrollable-components', $parent);
|
|
856
|
-
$scrollables.each(
|
|
857
|
-
|
|
858
|
-
scrollbars.update($scrollable, true);
|
|
839
|
+
$scrollables.each((i, elem) => {
|
|
840
|
+
scrollbars.update($(elem), true);
|
|
859
841
|
});
|
|
860
842
|
this.updateScrollPosition(animate);
|
|
861
843
|
}
|
|
862
844
|
|
|
845
|
+
_uninstallComponentScrollbars($parent) {
|
|
846
|
+
$parent.find('.calendar-scrollable-components').each((i, elem) => {
|
|
847
|
+
scrollbars.uninstall($(elem), this.session);
|
|
848
|
+
});
|
|
849
|
+
}
|
|
850
|
+
|
|
863
851
|
_updateTopGrid() {
|
|
864
852
|
$('.calendar-component', this.$topGrid).each((index, part) => {
|
|
865
853
|
let component = $(part).data('component');
|
|
@@ -1037,18 +1025,8 @@ export default class Calendar extends Widget {
|
|
|
1037
1025
|
}
|
|
1038
1026
|
|
|
1039
1027
|
_remove() {
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
// Ensure that scrollbars are unregistered
|
|
1043
|
-
for (let k = 0; k < $days.length; k++) {
|
|
1044
|
-
let $day = $days.eq(k);
|
|
1045
|
-
let $scrollableContainer = $day.children('.calendar-scrollable-components');
|
|
1046
|
-
|
|
1047
|
-
if ($scrollableContainer.length > 0) {
|
|
1048
|
-
scrollbars.uninstall($scrollableContainer, this.session);
|
|
1049
|
-
$scrollableContainer.remove();
|
|
1050
|
-
}
|
|
1051
|
-
}
|
|
1028
|
+
this._uninstallComponentScrollbars(this.$grid);
|
|
1029
|
+
this._uninstallComponentScrollbars(this.$topGrid);
|
|
1052
1030
|
|
|
1053
1031
|
this.$window
|
|
1054
1032
|
.off('mousemove touchmove', this._mouseMoveHandler)
|
|
@@ -1179,6 +1157,7 @@ export default class Calendar extends Widget {
|
|
|
1179
1157
|
|
|
1180
1158
|
if (this._isMonth()) {
|
|
1181
1159
|
this._uninstallScrollbars();
|
|
1160
|
+
this._uninstallComponentScrollbars(this.$topGrid);
|
|
1182
1161
|
this.$grid.removeClass('calendar-scrollable-components');
|
|
1183
1162
|
} else {
|
|
1184
1163
|
this.$grid.addClass('calendar-scrollable-components');
|
|
@@ -1188,16 +1167,19 @@ export default class Calendar extends Widget {
|
|
|
1188
1167
|
session: this.session,
|
|
1189
1168
|
axis: 'y'
|
|
1190
1169
|
});
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1170
|
+
this.$topGrid.find('.calendar-scrollable-components').each((i, elem) => {
|
|
1171
|
+
let $topDay = $(elem);
|
|
1172
|
+
if ($topDay.data('scrollable')) {
|
|
1173
|
+
scrollbars.update($topDay);
|
|
1174
|
+
return;
|
|
1175
|
+
}
|
|
1195
1176
|
scrollbars.install($topDay, {
|
|
1196
1177
|
parent: this,
|
|
1197
1178
|
session: this.session,
|
|
1198
|
-
axis: 'y'
|
|
1179
|
+
axis: 'y',
|
|
1180
|
+
scrollShadow: 'none'
|
|
1199
1181
|
});
|
|
1200
|
-
}
|
|
1182
|
+
});
|
|
1201
1183
|
}
|
|
1202
1184
|
}
|
|
1203
1185
|
|
|
@@ -28,15 +28,6 @@
|
|
|
28
28
|
height: 100%;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
.calendar-week-scrollable {
|
|
32
|
-
overflow: visible;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
.calendar-scrollable-components-week {
|
|
36
|
-
top: calc(@calendar-day-selected-circle-size ~'+ 5px');
|
|
37
|
-
height: calc(~'15% - (' @calendar-day-selected-circle-size ~' + 5px)');
|
|
38
|
-
}
|
|
39
|
-
|
|
40
31
|
.calendar-header {
|
|
41
32
|
position: relative;
|
|
42
33
|
display: block;
|
|
@@ -147,7 +138,8 @@
|
|
|
147
138
|
}
|
|
148
139
|
|
|
149
140
|
.calendar-mode {
|
|
150
|
-
|
|
141
|
+
padding: 0 8px;
|
|
142
|
+
min-width: 65px;
|
|
151
143
|
|
|
152
144
|
border-top: 1px solid @control-border-color;
|
|
153
145
|
border-bottom: 1px solid @control-border-color;
|
|
@@ -362,8 +354,16 @@
|
|
|
362
354
|
height: calc(~'100% - 25px');
|
|
363
355
|
padding-right: @root-group-box-padding-right;
|
|
364
356
|
|
|
357
|
+
& + .scroll-shadow {
|
|
358
|
+
--scroll-shadow-inset-right: @root-group-box-padding-right;
|
|
359
|
+
}
|
|
360
|
+
|
|
365
361
|
&.mobile {
|
|
366
362
|
padding-right: @calendar-padding-right-mobile;
|
|
363
|
+
|
|
364
|
+
& + .scroll-shadow {
|
|
365
|
+
--scroll-shadow-inset-right: @calendar-padding-right-mobile;
|
|
366
|
+
}
|
|
367
367
|
}
|
|
368
368
|
}
|
|
369
369
|
|
|
@@ -17,6 +17,7 @@ export default class CalendarLayout extends AbstractLayout {
|
|
|
17
17
|
this.calendar = calendar;
|
|
18
18
|
this.stacked = false;
|
|
19
19
|
this.compacted = false;
|
|
20
|
+
this.compactWidth = 550;
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
layout($container) {
|
|
@@ -34,7 +35,8 @@ export default class CalendarLayout extends AbstractLayout {
|
|
|
34
35
|
if ($header[0].scrollWidth > $container.width()) {
|
|
35
36
|
this.stack();
|
|
36
37
|
}
|
|
37
|
-
if ($header[0].scrollWidth > $container.width()) {
|
|
38
|
+
if ($container.width() < this.compactWidth || $header[0].scrollWidth > $container.width()) {
|
|
39
|
+
// Title may take a lot of space, make it always compact for small devices so it won't toggle when changing display mode or view range
|
|
38
40
|
this.compact();
|
|
39
41
|
}
|
|
40
42
|
|
|
@@ -10,11 +10,12 @@
|
|
|
10
10
|
*/
|
|
11
11
|
.desktop-tab.simple-tab {
|
|
12
12
|
width: @desktop-tab-width;
|
|
13
|
-
min-width: @desktop-tab-min-width
|
|
13
|
+
min-width: @desktop-tab-min-width;
|
|
14
14
|
margin: @desktop-tab-margin-top @desktop-tab-margin-right 0 0;
|
|
15
15
|
padding: @desktop-tab-padding @desktop-tab-padding 0 @desktop-tab-padding-left;
|
|
16
16
|
border-radius: @desktop-tab-border-radius @desktop-tab-border-radius 0 0;
|
|
17
|
-
border-
|
|
17
|
+
border: @desktop-tab-border-width solid @desktop-tab-border-color;
|
|
18
|
+
border-bottom-width: 0;
|
|
18
19
|
background-color: @desktop-tab-background-color;
|
|
19
20
|
|
|
20
21
|
& > .title-line {
|
|
@@ -79,6 +80,7 @@
|
|
|
79
80
|
&:hover,
|
|
80
81
|
&:active {
|
|
81
82
|
background-color: @desktop-tab-hover-background-color;
|
|
83
|
+
border-color: transparent;
|
|
82
84
|
|
|
83
85
|
& > .title-line > .title {
|
|
84
86
|
color: inherit;
|
|
@@ -109,6 +111,7 @@
|
|
|
109
111
|
|
|
110
112
|
&.selected {
|
|
111
113
|
background-color: @simple-tab-selected-background-color;
|
|
114
|
+
border-color: transparent;
|
|
112
115
|
|
|
113
116
|
& > .title-line {
|
|
114
117
|
& > .icon-container {
|
|
@@ -11,17 +11,21 @@
|
|
|
11
11
|
.desktop-tab-area {
|
|
12
12
|
|
|
13
13
|
& > .simple-overflow-tab-item {
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
@desktop-overflow-tab-margin-bottom: @desktop-tab-margin-right * 2;
|
|
15
|
+
|
|
16
|
+
border-radius: @view-tab-border-radius; // Use smaller border radius, so it fits nicely into the inverted border radius of the last tab if it is selected
|
|
17
|
+
margin: @desktop-tab-margin-top + @desktop-overflow-tab-margin-bottom @desktop-tab-margin-right @desktop-overflow-tab-margin-bottom;
|
|
16
18
|
background-color: @desktop-tab-background-color;
|
|
17
|
-
border:
|
|
19
|
+
border: @desktop-tab-border-width solid @desktop-tab-border-color;
|
|
18
20
|
|
|
19
21
|
&:hover {
|
|
20
22
|
background-color: @desktop-tab-hover-background-color;
|
|
23
|
+
border-color: transparent;
|
|
21
24
|
}
|
|
22
25
|
|
|
23
26
|
&.selected {
|
|
24
27
|
background-color: @desktop-tab-hover-background-color;
|
|
28
|
+
border-color: transparent;
|
|
25
29
|
}
|
|
26
30
|
}
|
|
27
31
|
}
|
|
@@ -160,18 +160,17 @@ export default class DesktopNotification extends ScoutNotification {
|
|
|
160
160
|
return;
|
|
161
161
|
}
|
|
162
162
|
if (this.nativeNotificationVisibility === DesktopNotification.NativeNotificationVisibility.NONE) {
|
|
163
|
+
this._hideLaterIfNativeOnly();
|
|
163
164
|
return;
|
|
164
165
|
}
|
|
165
166
|
|
|
166
167
|
if (this.nativeNotificationVisibility === DesktopNotification.NativeNotificationVisibility.BACKGROUND && !this._isDocumentHidden()) {
|
|
168
|
+
this._hideLaterIfNativeOnly();
|
|
167
169
|
return;
|
|
168
170
|
}
|
|
169
171
|
|
|
170
172
|
if (window.Notification && Notification.permission === 'denied') {
|
|
171
|
-
|
|
172
|
-
// If native notifications are not allowed, there is no need to keep the (invisible) desktop notification open
|
|
173
|
-
this.hide();
|
|
174
|
-
}
|
|
173
|
+
this._hideLaterIfNativeOnly();
|
|
175
174
|
return;
|
|
176
175
|
}
|
|
177
176
|
if (this._checkNotificationPromise()) {
|
|
@@ -182,6 +181,14 @@ export default class DesktopNotification extends ScoutNotification {
|
|
|
182
181
|
}
|
|
183
182
|
}
|
|
184
183
|
|
|
184
|
+
_hideLaterIfNativeOnly() {
|
|
185
|
+
if (!this.nativeOnly) {
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
// If native notifications are not shown, there is no need to keep the (invisible) desktop notification open (prevent dom-leak)
|
|
189
|
+
setTimeout(() => this.hide()); // async because this method is called in render and removing the notification within render throws exception
|
|
190
|
+
}
|
|
191
|
+
|
|
185
192
|
/**
|
|
186
193
|
* Checks if browser supports the promise-based version of the method requestPermission. Safari only supports the older callback version.
|
|
187
194
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c) 2010-
|
|
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
|
|
@@ -12,12 +12,14 @@
|
|
|
12
12
|
@desktop-notification-margin-bottom: 10px;
|
|
13
13
|
|
|
14
14
|
.desktop-notifications {
|
|
15
|
+
@desktop-notifications-margin-top: @desktop-header-height + 8px;
|
|
16
|
+
|
|
15
17
|
position: fixed;
|
|
16
18
|
right: 10px;
|
|
17
19
|
top: 0;
|
|
18
|
-
height: 100
|
|
20
|
+
height: calc(~'100% - ' @desktop-notifications-margin-top);
|
|
19
21
|
width: @desktop-notification-width;
|
|
20
|
-
margin-top: @desktop-
|
|
22
|
+
margin-top: @desktop-notifications-margin-top;
|
|
21
23
|
pointer-events: none; /* Don't block access to the elements in the background */
|
|
22
24
|
}
|
|
23
25
|
|
|
@@ -58,10 +58,6 @@
|
|
|
58
58
|
line-height: @outline-node-control-line-height;
|
|
59
59
|
color: @outline-node-control-color;
|
|
60
60
|
|
|
61
|
-
&::before {
|
|
62
|
-
font-size: @outline-node-control-size;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
61
|
&:hover {
|
|
66
62
|
color: @highlight-color;
|
|
67
63
|
}
|
|
@@ -77,6 +73,10 @@
|
|
|
77
73
|
|
|
78
74
|
& > .tree-node-control {
|
|
79
75
|
color: @outline-node-selected-control-color;
|
|
76
|
+
|
|
77
|
+
&:hover {
|
|
78
|
+
color: @highlight-color;
|
|
79
|
+
}
|
|
80
80
|
}
|
|
81
81
|
|
|
82
82
|
& > .font-icon {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c)
|
|
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
|
|
@@ -70,14 +70,12 @@
|
|
|
70
70
|
|
|
71
71
|
&.left {
|
|
72
72
|
visibility: hidden;
|
|
73
|
-
|
|
74
|
-
animation: show-view-tab-left-edge @view-tab-transition-duration ease-out 0s forwards;
|
|
73
|
+
animation: show-view-tab-left-edge 40ms ease-out 160ms forwards;
|
|
75
74
|
}
|
|
76
75
|
|
|
77
76
|
&.right {
|
|
78
77
|
visibility: hidden;
|
|
79
|
-
|
|
80
|
-
animation: show-view-tab-right-edge @view-tab-transition-duration ease-out 0s forwards;
|
|
78
|
+
animation: show-view-tab-right-edge 40ms ease-out 160ms forwards;
|
|
81
79
|
}
|
|
82
80
|
}
|
|
83
81
|
}
|
|
@@ -132,15 +130,21 @@
|
|
|
132
130
|
}
|
|
133
131
|
|
|
134
132
|
@keyframes show-view-tab-left-edge {
|
|
135
|
-
|
|
133
|
+
0% {
|
|
136
134
|
visibility: visible;
|
|
137
|
-
|
|
135
|
+
left: -5px;
|
|
136
|
+
}
|
|
137
|
+
100% {
|
|
138
|
+
left: -12px;
|
|
138
139
|
}
|
|
139
140
|
}
|
|
140
141
|
|
|
141
142
|
@keyframes show-view-tab-right-edge {
|
|
142
|
-
|
|
143
|
+
0% {
|
|
143
144
|
visibility: visible;
|
|
144
|
-
|
|
145
|
+
right: -5px;
|
|
146
|
+
}
|
|
147
|
+
100% {
|
|
148
|
+
right: -12px;
|
|
145
149
|
}
|
|
146
150
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c)
|
|
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
|
|
@@ -19,11 +19,11 @@
|
|
|
19
19
|
align-items: center;
|
|
20
20
|
justify-content: center;
|
|
21
21
|
background-color: transparent;
|
|
22
|
+
cursor: pointer;
|
|
22
23
|
|
|
23
24
|
&:hover {
|
|
24
25
|
background-color: @view-menu-tab-hover-background-color;
|
|
25
26
|
color: inherit;
|
|
26
|
-
cursor: pointer;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
&.disabled {
|
|
@@ -158,6 +158,7 @@
|
|
|
158
158
|
& > .view-button {
|
|
159
159
|
padding-left: @view-tab-margin;
|
|
160
160
|
width: @view-tab-selected-width;
|
|
161
|
+
cursor: default;
|
|
161
162
|
}
|
|
162
163
|
|
|
163
164
|
.selected-button-invisible& > .view-menu {
|
package/src/form/Form.less
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c)
|
|
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
|
|
@@ -19,6 +19,7 @@ export default class LookupBox extends ValueField {
|
|
|
19
19
|
this.gridDataHints.weightY = 1.0;
|
|
20
20
|
this.gridDataHints.h = 2;
|
|
21
21
|
this.value = [];
|
|
22
|
+
this.clearable = ValueField.Clearable.NEVER;
|
|
22
23
|
|
|
23
24
|
this.lookupCall = null;
|
|
24
25
|
this._pendingLookup = null;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2010-2022 BSI Business Systems Integration AG.
|
|
3
|
+
* All rights reserved. This program and the accompanying materials
|
|
4
|
+
* are made available under the terms of the Eclipse Public License v1.0
|
|
5
|
+
* which accompanies this distribution, and is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-v10.html
|
|
7
|
+
*
|
|
8
|
+
* Contributors:
|
|
9
|
+
* BSI Business Systems Integration AG - initial API and implementation
|
|
10
|
+
*/
|
|
11
|
+
.breadcrumb-bar-field > .field {
|
|
12
|
+
padding-top: @borderless-field-padding-y;
|
|
13
|
+
padding-bottom: @borderless-field-padding-y + 1px; // BreadCrumbItem uses 14px instead of 13px font size
|
|
14
|
+
}
|
|
@@ -162,12 +162,12 @@ export default class GroupBox extends CompositeField {
|
|
|
162
162
|
render: () => true,
|
|
163
163
|
offset: 0,
|
|
164
164
|
hAlign: HAlign.RIGHT,
|
|
165
|
-
$drawingArea:
|
|
166
|
-
if (this.
|
|
165
|
+
$drawingArea: ($drawingArea, event) => {
|
|
166
|
+
if (this.$header && this.$header.isVisible()) {
|
|
167
167
|
return this.$header;
|
|
168
168
|
}
|
|
169
169
|
return this.$body;
|
|
170
|
-
}
|
|
170
|
+
}
|
|
171
171
|
};
|
|
172
172
|
|
|
173
173
|
keyStrokes
|
|
@@ -360,14 +360,11 @@ export default class GroupBox extends CompositeField {
|
|
|
360
360
|
this.$container.toggleClass('has-scroll-shadow-bottom', hasScrollShadowBottom);
|
|
361
361
|
if ((headerVisible || hasMenubarTop) && oldHasScrollShadowTop !== hasScrollShadowTop
|
|
362
362
|
|| hasMenubarBottom && oldHasScrollShadowBottom !== hasScrollShadowBottom) {
|
|
363
|
-
this.
|
|
363
|
+
this.invalidateLayoutTree(false);
|
|
364
364
|
}
|
|
365
365
|
|
|
366
366
|
// Enlarge header line if there is a shadow, but don't do it if there is a menubar on top
|
|
367
367
|
fields.adjustStatusPositionForScrollShadow(this, () => hasScrollShadowTop && headerVisible && !hasMenubarTop);
|
|
368
|
-
|
|
369
|
-
// Prevent flickering of status icon
|
|
370
|
-
this.validateLayout();
|
|
371
368
|
}
|
|
372
369
|
|
|
373
370
|
setMainBox(mainBox) {
|
|
@@ -782,9 +779,16 @@ export default class GroupBox extends CompositeField {
|
|
|
782
779
|
}
|
|
783
780
|
|
|
784
781
|
_onControlClick(event) {
|
|
785
|
-
if (this.expandable) {
|
|
786
|
-
|
|
782
|
+
if (!this.expandable) {
|
|
783
|
+
return;
|
|
787
784
|
}
|
|
785
|
+
const target = scout.widget(event.target);
|
|
786
|
+
if (this.menuBarPosition === GroupBox.MenuBarPosition.TITLE && this.menuBar.has(target)) {
|
|
787
|
+
// If the position of the menubar is set to title and a menu has been clicked, then the event must not be handled
|
|
788
|
+
return;
|
|
789
|
+
}
|
|
790
|
+
|
|
791
|
+
this.setExpanded(!this.expanded);
|
|
788
792
|
$.suppressEvent(event); // otherwise, the event would be triggered twice sometimes (by group-box-control and group-box-title)
|
|
789
793
|
}
|
|
790
794
|
|
|
@@ -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;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c)
|
|
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
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* Contributors:
|
|
9
9
|
* BSI Business Systems Integration AG - initial API and implementation
|
|
10
10
|
*/
|
|
11
|
-
import {arrays, ListBoxLayout, LookupBox, scout, Table
|
|
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() {
|