@eclipse-scout/core 22.0.23 → 22.0.29
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-111d2d090dfd2183238f.min.js +2 -0
- package/dist/eclipse-scout-core-111d2d090dfd2183238f.min.js.map +1 -0
- package/dist/eclipse-scout-core-theme.css.map +1 -1
- package/dist/eclipse-scout-core.js +43 -16
- package/dist/eclipse-scout-core.js.map +1 -1
- package/dist/file-list +2 -2
- package/package.json +3 -3
- package/src/scout.js +2 -3
- package/src/text/DateFormat.js +11 -2
- package/src/tree/Tree.js +9 -5
- package/src/util/dates.js +16 -6
- package/dist/eclipse-scout-core-c4cad26b336b02535421.min.js +0 -2
- package/dist/eclipse-scout-core-c4cad26b336b02535421.min.js.map +0 -1
package/dist/file-list
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
eclipse-scout-core-
|
|
2
|
-
eclipse-scout-core-
|
|
1
|
+
eclipse-scout-core-111d2d090dfd2183238f.min.js
|
|
2
|
+
eclipse-scout-core-111d2d090dfd2183238f.min.js.map
|
|
3
3
|
eclipse-scout-core-theme-dark-fd0e080c10f65e67b68b.min.css
|
|
4
4
|
eclipse-scout-core-theme-dark.css
|
|
5
5
|
eclipse-scout-core-theme-dark.css.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eclipse-scout/core",
|
|
3
|
-
"version": "22.0.
|
|
3
|
+
"version": "22.0.29",
|
|
4
4
|
"description": "Eclipse Scout runtime",
|
|
5
5
|
"author": "BSI Business Systems Integration AG",
|
|
6
6
|
"homepage": "https://www.eclipse.org/scout",
|
|
@@ -26,12 +26,12 @@
|
|
|
26
26
|
"src"
|
|
27
27
|
],
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@eclipse-scout/cli": "22.0.
|
|
29
|
+
"@eclipse-scout/cli": "22.0.29",
|
|
30
30
|
"@eclipse-scout/releng": "^22.0.0",
|
|
31
31
|
"jasmine-core": "3.10.1",
|
|
32
32
|
"jasmine-ajax": "4.0.0",
|
|
33
33
|
"jasmine-jquery": "2.1.1",
|
|
34
|
-
"karma": "6.3.
|
|
34
|
+
"karma": "6.3.20"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"jquery": "3.6.0",
|
package/src/scout.js
CHANGED
|
@@ -85,11 +85,10 @@ export function assertValue(value, msg) {
|
|
|
85
85
|
/**
|
|
86
86
|
* Throws an error if the given value is not an instance of the given type. Otherwise, the value is returned.
|
|
87
87
|
*
|
|
88
|
-
* @
|
|
89
|
-
* @param {T} value - value to check
|
|
88
|
+
* @param {*} value - value to check
|
|
90
89
|
* @param {*} type - type to check against with "instanceof"
|
|
91
90
|
* @param {string} [msg] - optional error message when the assertion fails
|
|
92
|
-
* @return {
|
|
91
|
+
* @return {*}
|
|
93
92
|
*/
|
|
94
93
|
export function assertInstance(value, type, msg) {
|
|
95
94
|
if (!(value instanceof type)) {
|
package/src/text/DateFormat.js
CHANGED
|
@@ -86,11 +86,20 @@ export default class DateFormat {
|
|
|
86
86
|
// (e.g. MMMM) to short (e.g. M).
|
|
87
87
|
this._patternDefinitions = [
|
|
88
88
|
// --- Year ---
|
|
89
|
+
// This definition can _format_ dates with years with 4 or more digits.
|
|
90
|
+
// See: http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
|
|
91
|
+
// chapter 'Date and Time Patterns', paragraph 'Year'
|
|
92
|
+
// We do not allow to _parse_ a date with 5 or more digits. We could allow that in a
|
|
93
|
+
// future release, but it could have an impact on backend logic, databases, etc.
|
|
89
94
|
new DateFormatPatternDefinition({
|
|
90
95
|
type: DateFormatPatternType.YEAR,
|
|
91
|
-
terms: ['yyyy'],
|
|
96
|
+
terms: ['yyyy'], // meaning: any number of digits is allowed
|
|
92
97
|
dateFormat: this,
|
|
93
|
-
formatFunction: (formatContext, acceptedTerm) =>
|
|
98
|
+
formatFunction: (formatContext, acceptedTerm) => {
|
|
99
|
+
let year = formatContext.inputDate.getFullYear();
|
|
100
|
+
let numDigits = Math.max(4, year.toString().length); // min. digits = 4
|
|
101
|
+
return strings.padZeroLeft(formatContext.inputDate.getFullYear(), numDigits).slice(-numDigits);
|
|
102
|
+
},
|
|
94
103
|
parseRegExp: /^(\d{4})(.*)$/,
|
|
95
104
|
applyMatchFunction: (parseContext, match, acceptedTerm) => {
|
|
96
105
|
parseContext.matchInfo.year = match;
|
package/src/tree/Tree.js
CHANGED
|
@@ -398,7 +398,7 @@ export default class Tree extends Widget {
|
|
|
398
398
|
this.scrollToSelection = false;
|
|
399
399
|
let scrollTop = this.$data[0].scrollTop;
|
|
400
400
|
let scrollLeft = this.$data[0].scrollLeft;
|
|
401
|
-
if (this.scrollTop !== scrollTop) {
|
|
401
|
+
if (this.scrollTop !== scrollTop && this.rendered) {
|
|
402
402
|
this._renderViewport();
|
|
403
403
|
}
|
|
404
404
|
this.scrollTop = scrollTop;
|
|
@@ -1915,9 +1915,7 @@ export default class Tree extends Widget {
|
|
|
1915
1915
|
_addToVisibleFlatListNoCheck(node, insertIndex, animatedRendering) {
|
|
1916
1916
|
arrays.insert(this.visibleNodesFlat, node, insertIndex);
|
|
1917
1917
|
this.visibleNodesMap[node.id] = true;
|
|
1918
|
-
|
|
1919
|
-
this.showNode(node, animatedRendering, insertIndex);
|
|
1920
|
-
}
|
|
1918
|
+
this.showNode(node, animatedRendering, insertIndex);
|
|
1921
1919
|
}
|
|
1922
1920
|
|
|
1923
1921
|
scrollTo(node, options) {
|
|
@@ -2154,10 +2152,16 @@ export default class Tree extends Widget {
|
|
|
2154
2152
|
}
|
|
2155
2153
|
}
|
|
2156
2154
|
|
|
2155
|
+
/**
|
|
2156
|
+
* @param {TreeNode} [parentNode]
|
|
2157
|
+
*/
|
|
2157
2158
|
insertNode(node, parentNode) {
|
|
2158
2159
|
this.insertNodes([node], parentNode);
|
|
2159
2160
|
}
|
|
2160
2161
|
|
|
2162
|
+
/**
|
|
2163
|
+
* @param {TreeNode} [parentNode]
|
|
2164
|
+
*/
|
|
2161
2165
|
insertNodes(nodes, parentNode) {
|
|
2162
2166
|
nodes = arrays.ensure(nodes).slice();
|
|
2163
2167
|
if (nodes.length === 0) {
|
|
@@ -3023,7 +3027,7 @@ export default class Tree extends Widget {
|
|
|
3023
3027
|
}
|
|
3024
3028
|
|
|
3025
3029
|
hideNode(node, useAnimation, suppressDetachHandling) {
|
|
3026
|
-
if (!node.attached) {
|
|
3030
|
+
if (!this.rendered || !node.attached) {
|
|
3027
3031
|
return;
|
|
3028
3032
|
}
|
|
3029
3033
|
this.viewRangeDirty = true;
|
package/src/util/dates.js
CHANGED
|
@@ -181,6 +181,8 @@ export function compareDays(date1, date2) {
|
|
|
181
181
|
* are guaranteed to be digits. If the date argument is omitted, the current date is
|
|
182
182
|
* used. The returned string in in UTC if the argument 'utc' is true, otherwise the
|
|
183
183
|
* result is in local time (default).
|
|
184
|
+
*
|
|
185
|
+
* @deprecated this function will be deleted in release 23.1. Use DateFormat.js instead
|
|
184
186
|
*/
|
|
185
187
|
export function timestamp(date, utc) {
|
|
186
188
|
// (note: month is 0-indexed)
|
|
@@ -307,7 +309,7 @@ export function parseJsonDate(jsonDate) {
|
|
|
307
309
|
utc = false;
|
|
308
310
|
|
|
309
311
|
// Date + Time
|
|
310
|
-
let matches =
|
|
312
|
+
let matches = /^\+?(\d{4,5})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})\.(\d{3})(Z?)$/.exec(jsonDate);
|
|
311
313
|
if (matches !== null) {
|
|
312
314
|
year = matches[1];
|
|
313
315
|
month = matches[2];
|
|
@@ -319,7 +321,7 @@ export function parseJsonDate(jsonDate) {
|
|
|
319
321
|
utc = matches[8] === 'Z';
|
|
320
322
|
} else {
|
|
321
323
|
// Date only
|
|
322
|
-
matches =
|
|
324
|
+
matches = /^\+?(\d{4,5})-(\d{2})-(\d{2})(Z?)$/.exec(jsonDate);
|
|
323
325
|
if (matches !== null) {
|
|
324
326
|
year = matches[1];
|
|
325
327
|
month = matches[2];
|
|
@@ -378,7 +380,7 @@ export function toJsonDate(date, utc, includeDate, includeTime) {
|
|
|
378
380
|
let datePart, timePart, utcPart;
|
|
379
381
|
if (utc) {
|
|
380
382
|
// (note: month is 0-indexed)
|
|
381
|
-
datePart =
|
|
383
|
+
datePart = getYearPart(date) + '-' +
|
|
382
384
|
strings.padZeroLeft(date.getUTCMonth() + 1, 2) + '-' +
|
|
383
385
|
strings.padZeroLeft(date.getUTCDate(), 2);
|
|
384
386
|
timePart = strings.padZeroLeft(date.getUTCHours(), 2) + ':' +
|
|
@@ -388,7 +390,7 @@ export function toJsonDate(date, utc, includeDate, includeTime) {
|
|
|
388
390
|
utcPart = 'Z';
|
|
389
391
|
} else {
|
|
390
392
|
// (note: month is 0-indexed)
|
|
391
|
-
datePart =
|
|
393
|
+
datePart = getYearPart(date) + '-' +
|
|
392
394
|
strings.padZeroLeft(date.getMonth() + 1, 2) + '-' +
|
|
393
395
|
strings.padZeroLeft(date.getDate(), 2);
|
|
394
396
|
timePart = strings.padZeroLeft(date.getHours(), 2) + ':' +
|
|
@@ -409,6 +411,14 @@ export function toJsonDate(date, utc, includeDate, includeTime) {
|
|
|
409
411
|
}
|
|
410
412
|
result += utcPart;
|
|
411
413
|
return result;
|
|
414
|
+
|
|
415
|
+
function getYearPart(date) {
|
|
416
|
+
let year = date.getFullYear();
|
|
417
|
+
if (year > 9999) {
|
|
418
|
+
return '+' + year;
|
|
419
|
+
}
|
|
420
|
+
return strings.padZeroLeft(year, 4);
|
|
421
|
+
}
|
|
412
422
|
}
|
|
413
423
|
|
|
414
424
|
export function toJsonDateRange(range) {
|
|
@@ -424,7 +434,7 @@ export function toJsonDateRange(range) {
|
|
|
424
434
|
*
|
|
425
435
|
* The format is as follows:
|
|
426
436
|
*
|
|
427
|
-
* [Year#4]-[Month#2]-[Day#2] [Hours#2]:[Minutes#2]:[Seconds#2].[Milliseconds#3][Z]
|
|
437
|
+
* [Year#4|5]-[Month#2]-[Day#2] [Hours#2]:[Minutes#2]:[Seconds#2].[Milliseconds#3][Z]
|
|
428
438
|
*
|
|
429
439
|
* The year component is mandatory, but all others are optional (starting from the beginning).
|
|
430
440
|
* The date is constructed using the local time zone. If the last character is 'Z', then
|
|
@@ -432,7 +442,7 @@ export function toJsonDateRange(range) {
|
|
|
432
442
|
*/
|
|
433
443
|
export function create(dateString) {
|
|
434
444
|
if (dateString) {
|
|
435
|
-
let matches = /^(\d{4})(?:-(\d{2})(?:-(\d{2})(?: (\d{2})(?::(\d{2})(?::(\d{2})(?:\.(\d{3}))?(Z?))?)?)?)?)?/.exec(dateString);
|
|
445
|
+
let matches = /^(\d{4,5})(?:-(\d{2})(?:-(\d{2})(?: (\d{2})(?::(\d{2})(?::(\d{2})(?:\.(\d{3}))?(Z?))?)?)?)?)?/.exec(dateString);
|
|
436
446
|
if (matches === null) {
|
|
437
447
|
throw new Error('Unparsable date: ' + dateString);
|
|
438
448
|
}
|