wunderbaum 0.3.0 → 0.3.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/wunderbaum.d.ts +4 -4
- package/dist/wunderbaum.esm.js +32 -31
- package/dist/wunderbaum.esm.min.js +18 -18
- package/dist/wunderbaum.esm.min.js.map +1 -1
- package/dist/wunderbaum.umd.js +32 -33
- package/dist/wunderbaum.umd.min.js +18 -18
- package/dist/wunderbaum.umd.min.js.map +1 -1
- package/package.json +41 -36
- package/src/wb_ext_edit.ts +1 -0
- package/src/wb_node.ts +5 -5
- package/src/wb_options.ts +4 -4
- package/src/wunderbaum.scss +2 -3
- package/src/wunderbaum.ts +6 -6
- package/dist/wunderbaum.css +0 -5
package/package.json
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wunderbaum",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"title": "A treegrid control.",
|
|
5
5
|
"description": "JavaScript tree/grid/treegrid control.",
|
|
6
|
-
"main": "dist/wunderbaum.umd.js",
|
|
7
|
-
"types": "dist/wunderbaum.d.ts",
|
|
8
|
-
"module": "dist/wunderbaum.esm.min.js",
|
|
9
6
|
"homepage": "https://github.com/mar10/wunderbaum",
|
|
10
7
|
"author": {
|
|
11
8
|
"name": "Martin Wendt",
|
|
12
|
-
"url": "
|
|
9
|
+
"url": "https://github.com/mar10"
|
|
13
10
|
},
|
|
14
11
|
"repository": {
|
|
15
12
|
"type": "git",
|
|
@@ -25,12 +22,17 @@
|
|
|
25
22
|
"url": "https://raw.githubusercontent.com/mar10/wunderbaum/main/LICENSE.txt"
|
|
26
23
|
}
|
|
27
24
|
],
|
|
25
|
+
"main": "./dist/wunderbaum.umd.js",
|
|
26
|
+
"module": "./dist/wunderbaum.esm.js",
|
|
27
|
+
"types": "./dist/wunderbaum.d.ts",
|
|
28
28
|
"exports": {
|
|
29
29
|
".": {
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
}
|
|
30
|
+
"types": "./dist/wunderbaum.d.ts",
|
|
31
|
+
"require": "./dist/wunderbaum.umd.js",
|
|
32
|
+
"import": "./dist/wunderbaum.esm.js"
|
|
33
|
+
},
|
|
34
|
+
"./dist/": "./dist/",
|
|
35
|
+
"./src/": "./src/"
|
|
34
36
|
},
|
|
35
37
|
"files": [
|
|
36
38
|
"src",
|
|
@@ -45,35 +47,38 @@
|
|
|
45
47
|
"control"
|
|
46
48
|
],
|
|
47
49
|
"devDependencies": {
|
|
48
|
-
"@rollup/plugin-
|
|
49
|
-
"@
|
|
50
|
-
"
|
|
51
|
-
"
|
|
50
|
+
"@rollup/plugin-terser": "^0.4.3",
|
|
51
|
+
"@rollup/plugin-typescript": "^11.1.1",
|
|
52
|
+
"@types/jest": "^29.5.2",
|
|
53
|
+
"concurrently": "^8.1.0",
|
|
52
54
|
"eslint-config-jquery": "^3.0.0",
|
|
53
|
-
"eslint-config-prettier": "^8.
|
|
54
|
-
"eslint-plugin-prettier": "^4.
|
|
55
|
-
"
|
|
55
|
+
"eslint-config-prettier": "^8.8.0",
|
|
56
|
+
"eslint-plugin-prettier": "^4.2.1",
|
|
57
|
+
"eslint": "^8.41.0",
|
|
56
58
|
"grunt-contrib-connect": "^3.0.0",
|
|
57
|
-
"grunt-contrib-qunit": "^
|
|
59
|
+
"grunt-contrib-qunit": "^7.0.0",
|
|
58
60
|
"grunt-contrib-watch": "^1.1.0",
|
|
59
61
|
"grunt-exec": "^3.0.0",
|
|
60
62
|
"grunt-yabs": "^1.3.0",
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
63
|
+
"grunt": "^1.6.1",
|
|
64
|
+
"http-server": "^14.1.1",
|
|
65
|
+
"node-sass": "^9.0.0",
|
|
66
|
+
"nodemon": "^2.0.22",
|
|
67
|
+
"postcss-url": "^10.1.3",
|
|
68
|
+
"postcss": "^8.2.24",
|
|
69
|
+
"prettier": "^2.8.8",
|
|
65
70
|
"pretty-quick": "^3.1.3",
|
|
66
|
-
"puppeteer": "^
|
|
67
|
-
"qunit": "^2.
|
|
68
|
-
"rollup": "^2.70.1",
|
|
71
|
+
"puppeteer": "^20.5.0",
|
|
72
|
+
"qunit": "^2.19.4",
|
|
69
73
|
"rollup-plugin-modify": "^3.0.0",
|
|
70
|
-
"rollup-plugin-scss": "^
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"ts-
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
74
|
+
"rollup-plugin-scss": "^4.0.0",
|
|
75
|
+
"rollup": "^3.23.0",
|
|
76
|
+
"terser": "^5.17.7",
|
|
77
|
+
"ts-jest": "^29.1.0",
|
|
78
|
+
"ts-node": "^10.9.1",
|
|
79
|
+
"tslib": "^2.5.2",
|
|
80
|
+
"typedoc": "^0.24.7",
|
|
81
|
+
"typescript": "^5.0.0"
|
|
77
82
|
},
|
|
78
83
|
"nodemonConfig": {
|
|
79
84
|
"watch": [
|
|
@@ -96,12 +101,12 @@
|
|
|
96
101
|
"docs": "typedoc && touch docs/api/.nojekyll && rm docs/unittest/*.*; cp test/unit/*.* docs/unittest",
|
|
97
102
|
"format": "prettier src -w && npm run lint",
|
|
98
103
|
"lint": "prettier src --check && tsc -t esnext --noEmit",
|
|
99
|
-
"build:
|
|
100
|
-
"build:
|
|
101
|
-
"build:minjs:umd": "terser build/wunderbaum.umd.js --compress --mangle --source-map \"url='wunderbaum.umd.min.js.map'\" --output build/wunderbaum.umd.min.js",
|
|
102
|
-
"build:minjs:esm": "terser build/wunderbaum.esm.js --compress --mangle --source-map \"url='wunderbaum.esm.min.js.map'\" --output build/wunderbaum.esm.min.js",
|
|
104
|
+
"build:minjs:umd": "terser build/wunderbaum.umd.js --compress --mangle --source-map \"base='build',url='wunderbaum.umd.min.js.map',filename='wunderbaum.umd.js'\" --output build/wunderbaum.umd.min.js",
|
|
105
|
+
"build:minjs:esm": "terser build/wunderbaum.esm.js --compress --mangle --source-map \"base='build',url='wunderbaum.esm.min.js.map',filename='wunderbaum.esm.js'\" --output build/wunderbaum.esm.min.js",
|
|
103
106
|
"build:minjs": "npm run build:minjs:esm -s && npm run build:minjs:umd -s",
|
|
104
|
-
"build": "
|
|
107
|
+
"build:js": "rollup -c rollup.config.mjs && npm run build:minjs",
|
|
108
|
+
"build:types": "tsc -t esnext --moduleResolution node -d --emitDeclarationOnly --outFile build/wunderbaum.d.ts src/wunderbaum.ts",
|
|
109
|
+
"build": "npm run format && mkdir build; rm build/*.*; ls build && npm run build:js -s && npm run build:types -s && npm run docs",
|
|
105
110
|
"make_dist": "npm run build && rm dist/*.* ; cp build/*.* dist",
|
|
106
111
|
"watch:umd": "nodemon --watch src --ext 'ts' -x \"npm run build:minjs\"",
|
|
107
112
|
"watch": "nodemon",
|
package/src/wb_ext_edit.ts
CHANGED
|
@@ -237,6 +237,7 @@ export class EditExtension extends WunderbaumExtension {
|
|
|
237
237
|
* @param opts.canKeepOpen
|
|
238
238
|
*/
|
|
239
239
|
_stopEditTitle(apply: boolean, options: any) {
|
|
240
|
+
options ??= {};
|
|
240
241
|
const focusElem = document.activeElement as HTMLInputElement;
|
|
241
242
|
let newValue = focusElem ? getValueFromElem(focusElem) : null;
|
|
242
243
|
const node = this.curEditNode;
|
package/src/wb_node.ts
CHANGED
|
@@ -1090,7 +1090,7 @@ export class WunderbaumNode {
|
|
|
1090
1090
|
} finally {
|
|
1091
1091
|
this._requestId = 0;
|
|
1092
1092
|
elap = Date.now() - start;
|
|
1093
|
-
if (tree.options.debugLevel >= 3) {
|
|
1093
|
+
if (tree.options.debugLevel! >= 3) {
|
|
1094
1094
|
tree.logInfo(
|
|
1095
1095
|
`Load source took ${elap / 1000} seconds (transfer: ${
|
|
1096
1096
|
elapLoad / 1000
|
|
@@ -1149,7 +1149,7 @@ export class WunderbaumNode {
|
|
|
1149
1149
|
|
|
1150
1150
|
/* Log to console if opts.debugLevel >= 4 */
|
|
1151
1151
|
logDebug(...args: any[]) {
|
|
1152
|
-
if (this.tree.options.debugLevel >= 4) {
|
|
1152
|
+
if (this.tree.options.debugLevel! >= 4) {
|
|
1153
1153
|
Array.prototype.unshift.call(args, this.toString());
|
|
1154
1154
|
console.log.apply(console, args);
|
|
1155
1155
|
}
|
|
@@ -1157,7 +1157,7 @@ export class WunderbaumNode {
|
|
|
1157
1157
|
|
|
1158
1158
|
/* Log error to console. */
|
|
1159
1159
|
logError(...args: any[]) {
|
|
1160
|
-
if (this.tree.options.debugLevel >= 1) {
|
|
1160
|
+
if (this.tree.options.debugLevel! >= 1) {
|
|
1161
1161
|
Array.prototype.unshift.call(args, this.toString());
|
|
1162
1162
|
console.error.apply(console, args);
|
|
1163
1163
|
}
|
|
@@ -1165,7 +1165,7 @@ export class WunderbaumNode {
|
|
|
1165
1165
|
|
|
1166
1166
|
/* Log to console if opts.debugLevel >= 3 */
|
|
1167
1167
|
logInfo(...args: any[]) {
|
|
1168
|
-
if (this.tree.options.debugLevel >= 3) {
|
|
1168
|
+
if (this.tree.options.debugLevel! >= 3) {
|
|
1169
1169
|
Array.prototype.unshift.call(args, this.toString());
|
|
1170
1170
|
console.info.apply(console, args);
|
|
1171
1171
|
}
|
|
@@ -1173,7 +1173,7 @@ export class WunderbaumNode {
|
|
|
1173
1173
|
|
|
1174
1174
|
/* Log warning to console if opts.debugLevel >= 2 */
|
|
1175
1175
|
logWarn(...args: any[]) {
|
|
1176
|
-
if (this.tree.options.debugLevel >= 2) {
|
|
1176
|
+
if (this.tree.options.debugLevel! >= 2) {
|
|
1177
1177
|
Array.prototype.unshift.call(args, this.toString());
|
|
1178
1178
|
console.warn.apply(console, args);
|
|
1179
1179
|
}
|
package/src/wb_options.ts
CHANGED
|
@@ -116,7 +116,7 @@ export interface WunderbaumOptions {
|
|
|
116
116
|
* 0:quiet, 1:errors, 2:warnings, 3:info, 4:verbose
|
|
117
117
|
* Default: 3 (4 in local debug environment)
|
|
118
118
|
*/
|
|
119
|
-
debugLevel
|
|
119
|
+
debugLevel?: number;
|
|
120
120
|
/**
|
|
121
121
|
* Number of levels that are forced to be expanded, and have no expander icon.
|
|
122
122
|
* E.g. 1 would keep all toplevel nodes expanded.
|
|
@@ -193,9 +193,9 @@ export interface WunderbaumOptions {
|
|
|
193
193
|
|
|
194
194
|
// --- Extensions ------------------------------------------------------------
|
|
195
195
|
dnd?: DndOptionsType; // = {};
|
|
196
|
-
edit
|
|
197
|
-
filter
|
|
198
|
-
grid
|
|
196
|
+
edit?: any; // = {};
|
|
197
|
+
filter?: any; // = {};
|
|
198
|
+
grid?: any; // = {};
|
|
199
199
|
|
|
200
200
|
// --- Events ----------------------------------------------------------------
|
|
201
201
|
|
package/src/wunderbaum.scss
CHANGED
|
@@ -562,15 +562,14 @@ div.wunderbaum {
|
|
|
562
562
|
// translate: 0 -3px;
|
|
563
563
|
// }
|
|
564
564
|
|
|
565
|
-
div.wb-row.wb-drop-target.wb-drop-before .wb-node .wb-icon::after
|
|
565
|
+
div.wb-row.wb-drop-target.wb-drop-before .wb-node .wb-icon::after,
|
|
566
|
+
div.wb-row.wb-drop-target.wb-drop-after .wb-node .wb-icon::after {
|
|
566
567
|
content: url(../docs/assets/drop_marker_insert_16x64.png);
|
|
567
568
|
left: 0; // $icon-outer-width * 1.5;
|
|
568
569
|
top: ($row-outer-height - 16) / 2 - $row-outer-height / 2;
|
|
569
570
|
}
|
|
570
571
|
|
|
571
572
|
div.wb-row.wb-drop-target.wb-drop-after .wb-node .wb-icon::after {
|
|
572
|
-
content: url(../docs/assets/drop_marker_insert_16x64.png);
|
|
573
|
-
left: 0; //$icon-outer-width * 1.5;
|
|
574
573
|
top: ($row-outer-height - 16) / 2 + $row-outer-height / 2;
|
|
575
574
|
}
|
|
576
575
|
|
package/src/wunderbaum.ts
CHANGED
|
@@ -1388,7 +1388,7 @@ export class Wunderbaum {
|
|
|
1388
1388
|
|
|
1389
1389
|
/** Log to console if opts.debugLevel >= 4 */
|
|
1390
1390
|
logDebug(...args: any[]) {
|
|
1391
|
-
if (this.options.debugLevel >= 4) {
|
|
1391
|
+
if (this.options.debugLevel! >= 4) {
|
|
1392
1392
|
Array.prototype.unshift.call(args, this.toString());
|
|
1393
1393
|
console.log.apply(console, args);
|
|
1394
1394
|
}
|
|
@@ -1396,7 +1396,7 @@ export class Wunderbaum {
|
|
|
1396
1396
|
|
|
1397
1397
|
/** Log error to console. */
|
|
1398
1398
|
logError(...args: any[]) {
|
|
1399
|
-
if (this.options.debugLevel >= 1) {
|
|
1399
|
+
if (this.options.debugLevel! >= 1) {
|
|
1400
1400
|
Array.prototype.unshift.call(args, this.toString());
|
|
1401
1401
|
console.error.apply(console, args);
|
|
1402
1402
|
}
|
|
@@ -1404,7 +1404,7 @@ export class Wunderbaum {
|
|
|
1404
1404
|
|
|
1405
1405
|
/** Log to console if opts.debugLevel >= 3 */
|
|
1406
1406
|
logInfo(...args: any[]) {
|
|
1407
|
-
if (this.options.debugLevel >= 3) {
|
|
1407
|
+
if (this.options.debugLevel! >= 3) {
|
|
1408
1408
|
Array.prototype.unshift.call(args, this.toString());
|
|
1409
1409
|
console.info.apply(console, args);
|
|
1410
1410
|
}
|
|
@@ -1412,7 +1412,7 @@ export class Wunderbaum {
|
|
|
1412
1412
|
|
|
1413
1413
|
/** @internal */
|
|
1414
1414
|
logTime(label: string): string {
|
|
1415
|
-
if (this.options.debugLevel >= 4) {
|
|
1415
|
+
if (this.options.debugLevel! >= 4) {
|
|
1416
1416
|
console.time(this + ": " + label);
|
|
1417
1417
|
}
|
|
1418
1418
|
return label;
|
|
@@ -1420,14 +1420,14 @@ export class Wunderbaum {
|
|
|
1420
1420
|
|
|
1421
1421
|
/** @internal */
|
|
1422
1422
|
logTimeEnd(label: string): void {
|
|
1423
|
-
if (this.options.debugLevel >= 4) {
|
|
1423
|
+
if (this.options.debugLevel! >= 4) {
|
|
1424
1424
|
console.timeEnd(this + ": " + label);
|
|
1425
1425
|
}
|
|
1426
1426
|
}
|
|
1427
1427
|
|
|
1428
1428
|
/** Log to console if opts.debugLevel >= 2 */
|
|
1429
1429
|
logWarn(...args: any[]) {
|
|
1430
|
-
if (this.options.debugLevel >= 2) {
|
|
1430
|
+
if (this.options.debugLevel! >= 2) {
|
|
1431
1431
|
Array.prototype.unshift.call(args, this.toString());
|
|
1432
1432
|
console.warn.apply(console, args);
|
|
1433
1433
|
}
|
package/dist/wunderbaum.css
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Wunderbaum style sheet (generated from wunderbaum.scss)
|
|
3
|
-
* Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license.
|
|
4
|
-
* v0.3.0, Sat, 27 May 2023 04:56:52 GMT (https://github.com/mar10/wunderbaum)
|
|
5
|
-
*/div.wunderbaum{box-sizing:border-box;height:100%;min-height:4px;background-color:#fff;margin:0;padding:0;font-family:Helvetica,sans-serif;font-size:14px;color:#56534c;border:2px solid #56534c;border-radius:4px;background-clip:content-box;overflow-x:auto;overflow-y:scroll}div.wunderbaum:focus,div.wunderbaum:focus-within{border-color:#275dc5}div.wunderbaum.wb-disabled{opacity:0.7;pointer-events:none}div.wunderbaum div.wb-list-container{position:relative;min-height:4px}div.wunderbaum div.wb-header{position:sticky;top:0;z-index:2}div.wunderbaum div.wb-header,div.wunderbaum div.wb-list-container{overflow:unset}div.wunderbaum div.wb-row{position:absolute;width:100%;height:22px;line-height:22px;border:1px solid transparent}div.wunderbaum.wb-fixed-col span.wb-col:first-of-type{position:sticky;left:0;z-index:1;background-color:#fff}div.wunderbaum.wb-fixed-col div.wb-header span.wb-col:first-of-type{background-color:#dedede}div.wunderbaum.wb-fixed-col div.wb-node-list div.wb-row.wb-active span.wb-col:first-of-type,div.wunderbaum.wb-fixed-col div.wb-node-list div.wb-row.wb-selected span.wb-col:first-of-type{background-color:#e5f3fb}div.wunderbaum.wb-fixed-col div.wb-node-list div.wb-row.wb-active:hover span.wb-col:first-of-type,div.wunderbaum.wb-fixed-col div.wb-node-list div.wb-row.wb-selected:hover span.wb-col:first-of-type{background-color:#dceff8}div.wunderbaum.wb-fixed-col div.wb-node-list div.wb-row:hover span.wb-col:first-of-type{background-color:#f7fcfe}div.wunderbaum.wb-fixed-col:not(:focus-within) div.wb-node-list div.wb-row.wb-active span.wb-col:first-of-type,div.wunderbaum.wb-fixed-col:not(:focus-within) div.wb-node-list div.wb-row.wb-selected span.wb-col:first-of-type,div.wunderbaum.wb-fixed-col:not(:focus) div.wb-node-list div.wb-row.wb-active span.wb-col:first-of-type,div.wunderbaum.wb-fixed-col:not(:focus) div.wb-node-list div.wb-row.wb-selected span.wb-col:first-of-type{background-color:#f0f0f0;border-color:#acacac}div.wunderbaum.wb-fixed-col:not(:focus-within) div.wb-node-list div.wb-row.wb-active span.wb-col:first-of-type:hover span.wb-col:first-of-type,div.wunderbaum.wb-fixed-col:not(:focus-within) div.wb-node-list div.wb-row.wb-selected span.wb-col:first-of-type:hover span.wb-col:first-of-type,div.wunderbaum.wb-fixed-col:not(:focus) div.wb-node-list div.wb-row.wb-active span.wb-col:first-of-type:hover span.wb-col:first-of-type,div.wunderbaum.wb-fixed-col:not(:focus) div.wb-node-list div.wb-row.wb-selected span.wb-col:first-of-type:hover span.wb-col:first-of-type{background-color:#eaeaea}div.wunderbaum:not(:focus-within) div.wb-node-list div.wb-row.wb-active,div.wunderbaum:not(:focus-within) div.wb-node-list div.wb-row.wb-selected,div.wunderbaum:not(:focus) div.wb-node-list div.wb-row.wb-active,div.wunderbaum:not(:focus) div.wb-node-list div.wb-row.wb-selected{background-color:#f0f0f0;border-color:#acacac}div.wunderbaum:not(:focus-within) div.wb-node-list div.wb-row.wb-active:hover,div.wunderbaum:not(:focus-within) div.wb-node-list div.wb-row.wb-selected:hover,div.wunderbaum:not(:focus) div.wb-node-list div.wb-row.wb-active:hover,div.wunderbaum:not(:focus) div.wb-node-list div.wb-row.wb-selected:hover{background-color:#eaeaea}div.wunderbaum.wb-alternate div.wb-node-list div.wb-row:nth-of-type(even):not(.wb-active):not(.wb-selected){background-color:#f7f7f7}div.wunderbaum.wb-alternate div.wb-node-list div.wb-row:nth-of-type(even):not(.wb-active):not(.wb-selected):hover{background-color:#f3f3f3}div.wunderbaum div.wb-node-list div.wb-row:hover{background-color:#f7fcfe}div.wunderbaum div.wb-node-list div.wb-row.wb-active,div.wunderbaum div.wb-node-list div.wb-row.wb-selected{background-color:#e5f3fb}div.wunderbaum div.wb-node-list div.wb-row.wb-active:hover,div.wunderbaum div.wb-node-list div.wb-row.wb-selected:hover{background-color:#dceff8}div.wunderbaum div.wb-node-list div.wb-row.wb-focus:not(.wb-active){border-style:dotted;border-color:#70c0e7}div.wunderbaum div.wb-node-list div.wb-row.wb-active{border-style:solid;border-color:#70c0e7}div.wunderbaum div.wb-node-list div.wb-row.wb-active:hover{border-color:#26a0da}div.wunderbaum div.wb-node-list div.wb-row.wb-loading{font-style:italic}div.wunderbaum div.wb-node-list div.wb-row.wb-busy,div.wunderbaum div.wb-node-list div.wb-row i.wb-busy,div.wunderbaum div.wb-node-list div.wb-row .wb-col.wb-busy{font-style:italic;background:repeating-linear-gradient(45deg, transparent, transparent 3.88px, #dedede 3.88px, #dedede 7.78px);animation:wb-busy-animation 2s linear infinite}div.wunderbaum div.wb-node-list div.wb-row.wb-error,div.wunderbaum div.wb-node-list div.wb-row.wb-status-error{color:#b5373b}div.wunderbaum div.wb-header{position:sticky;height:22px;border-bottom:1px solid #56534c;padding:0;background-color:#dedede}div.wunderbaum div.wb-header span.wb-col{font-weight:bold;overflow:visible}div.wunderbaum div.wb-header span.wb-col-title{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}div.wunderbaum div.wb-header span.wb-col-resizer{position:absolute;top:0;right:-1px;width:3px;border:none;border-right:2px solid #56534c;height:100%;cursor:col-resize}div.wunderbaum span.wb-col{position:absolute;display:inline-block;overflow:hidden;height:20px;line-height:20px;padding:0 2px;border-right:1px solid #dedede;white-space:nowrap}div.wunderbaum span.wb-col:last-of-type{border-right:none}div.wunderbaum span.wb-node{user-select:none}div.wunderbaum span.wb-node i.wb-checkbox,div.wunderbaum span.wb-node i.wb-expander,div.wunderbaum span.wb-node i.wb-icon,div.wunderbaum span.wb-node i.wb-indent{height:20px;width:20px;padding:2px 2px;display:inline-block}div.wunderbaum span.wb-node i.bi::before{vertical-align:baseline}div.wunderbaum span.wb-node img.wb-icon{width:16px;height:16px;padding:2px 2px}div.wunderbaum span.wb-node i.wb-indent::before{content:"\00a0"}div.wunderbaum span.wb-node i.wb-expander.wb-spin,div.wunderbaum span.wb-node i.wb-icon.wb-spin{height:unset;width:unset;padding:0 3px;animation:wb-spin-animation 2s linear infinite}div.wunderbaum span.wb-node span.wb-title{min-width:1em;vertical-align:top;overflow-x:hidden;display:inline-block;white-space:nowrap;text-overflow:ellipsis}div.wunderbaum.wb-grid div.wb-header div.wb-row span.wb-col:hover{background-color:#c5c5c5}div.wunderbaum.wb-grid.wb-cell-mode div.wb-header div.wb-row span.wb-col.wb-active{background-color:#dceff8}div.wunderbaum.wb-grid div.wb-node-list div.wb-row{border-bottom-color:#dedede}div.wunderbaum.wb-grid div.wb-node-list div.wb-row:hover:not(.wb-active):not(.wb-selected){background-color:#f7fcfe}div.wunderbaum.wb-grid div.wb-node-list div.wb-row.wb-active{border-bottom-color:#70c0e7}div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col{border-right:1px solid #dedede}div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col input.wb-input-edit,div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col>input[type="color"],div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col>input[type="date"],div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col>input[type="datetime"],div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col>input[type="datetime-local"],div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col>input[type="email"],div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col>input[type="month"],div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col>input[type="number"],div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col>input[type="password"],div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col>input[type="search"],div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col>input[type="tel"],div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col>input[type="text"],div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col>input[type="time"],div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col>input[type="url"],div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col>input[type="week"],div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col>select{width:100%;max-height:20px;border:none}div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col>input:focus,div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col>select:focus{border:1px dashed #70c0e7}div.wunderbaum.wb-grid.wb-cell-mode div.wb-row:not(.wb-colspan).wb-active span.wb-col.wb-active{background-color:#b3b3b3}div.wunderbaum.wb-grid.wb-cell-mode:focus-within div.wb-row:not(.wb-colspan):not(.wb-selected) span.wb-col.wb-active,div.wunderbaum.wb-grid.wb-cell-mode:focus div.wb-row:not(.wb-colspan):not(.wb-selected) span.wb-col.wb-active{background-color:#f7fcfe}div.wunderbaum.wb-grid.wb-cell-mode:focus-within div.wb-row:not(.wb-colspan):not(.wb-selected).wb-active,div.wunderbaum.wb-grid.wb-cell-mode:focus div.wb-row:not(.wb-colspan):not(.wb-selected).wb-active{background-color:#f7fcfe}div.wunderbaum.wb-grid.wb-cell-mode:focus-within div.wb-row:not(.wb-colspan):not(.wb-selected).wb-active span.wb-col.wb-active,div.wunderbaum.wb-grid.wb-cell-mode:focus div.wb-row:not(.wb-colspan):not(.wb-selected).wb-active span.wb-col.wb-active{background-color:#7dc6e9}div.wunderbaum.wb-grid.wb-alternate div.wb-node-list div.wb-row:nth-of-type(even):not(.wb-active):not(.wb-selected){background-color:#f7f7f7}div.wunderbaum.wb-grid.wb-alternate div.wb-node-list div.wb-row:nth-of-type(even):not(.wb-active):not(.wb-selected):hover{background-color:#f3f3f3}div.wunderbaum.wb-grid:not(:focus-within) div.wb-node-list div.wb-row,div.wunderbaum.wb-grid:not(:focus) div.wb-node-list div.wb-row{border-bottom-color:#dedede}div.wunderbaum.wb-ext-filter-dim div.wb-node-list div.wb-row,div.wunderbaum.wb-ext-filter-hide div.wb-node-list div.wb-row{color:#dedede}div.wunderbaum.wb-ext-filter-dim div.wb-node-list div.wb-row.wb-submatch,div.wunderbaum.wb-ext-filter-hide div.wb-node-list div.wb-row.wb-submatch{color:#868581}div.wunderbaum.wb-ext-filter-dim div.wb-node-list div.wb-row.wb-match,div.wunderbaum.wb-ext-filter-hide div.wb-node-list div.wb-row.wb-match{color:#56534c}div.wunderbaum div.wb-row.wb-drag-source{opacity:0.5}div.wunderbaum div.wb-row.wb-drag-source .wb-node{background-color:#d3d2ce}div.wunderbaum div.wb-row.wb-drop-target{overflow:visible}div.wunderbaum div.wb-row.wb-drop-target .wb-node{background-color:#d4ecf8;overflow:visible}div.wunderbaum div.wb-row.wb-drop-target .wb-node .wb-icon{position:relative;overflow:visible}div.wunderbaum div.wb-row.wb-drop-target .wb-node .wb-icon::after{position:absolute;z-index:1000;content:url(../docs/assets/drop_marker_16x32.png);left:0;top:3px}div.wunderbaum div.wb-row.wb-drop-target.wb-drop-before .wb-node .wb-icon::after{content:url(../docs/assets/drop_marker_insert_16x64.png);left:0;top:-8px}div.wunderbaum div.wb-row.wb-drop-target.wb-drop-after .wb-node .wb-icon::after{content:url(../docs/assets/drop_marker_insert_16x64.png);left:0;top:14px}div.wunderbaum.wb-rainbow i.wb-expander:nth-child(4n+1),div.wunderbaum.wb-rainbow i.wb-indent:nth-child(4n+1){background:#ffffc9}div.wunderbaum.wb-rainbow i.wb-expander:nth-child(4n+2),div.wunderbaum.wb-rainbow i.wb-indent:nth-child(4n+2){background:#daffda}div.wunderbaum.wb-rainbow i.wb-expander:nth-child(4n+3),div.wunderbaum.wb-rainbow i.wb-indent:nth-child(4n+3){background:#ffd9fe}div.wunderbaum.wb-rainbow i.wb-expander:nth-child(4n+4),div.wunderbaum.wb-rainbow i.wb-indent:nth-child(4n+4){background:#ccfafa}div.wunderbaum.wb-fade-expander i.wb-expander{transition:color 1.5s;color:rgba(86,83,76,0)}div.wunderbaum.wb-fade-expander div.wb-row.wb-loading i.wb-expander,div.wunderbaum.wb-fade-expander:hover i.wb-expander,div.wunderbaum.wb-fade-expander:focus i.wb-expander,div.wunderbaum.wb-fade-expander:focus-within i.wb-expander,div.wunderbaum.wb-fade-expander [class*="wb-statusnode-"] i.wb-expander{transition:color 0.6s;color:#56534c}div.wunderbaum div.wb-row.wb-skeleton span.wb-title,div.wunderbaum div.wb-row.wb-skeleton i.wb-icon{animation:wb-skeleton-animation 1s linear infinite alternate;border-radius:0.25em;color:transparent;opacity:0.7}div.wunderbaum.wb-checkbox-auto-hide i.wb-checkbox{visibility:hidden}div.wunderbaum.wb-checkbox-auto-hide .wb-row:hover i.wb-checkbox,div.wunderbaum.wb-checkbox-auto-hide .wb-row.wb-selected i.wb-checkbox{visibility:unset}div.wunderbaum.wb-checkbox-auto-hide:focus .wb-row.wb-active i.wb-checkbox,div.wunderbaum.wb-checkbox-auto-hide:focus-within .wb-row.wb-active i.wb-checkbox{visibility:unset}.wb-helper-center{text-align:center}.wb-helper-disabled{color:#8c877c}.wb-helper-hidden{display:none}.wb-helper-invalid{color:#b5373b}.wb-helper-lazy-expander{color:#26a0da}.wb-helper-link{cursor:pointer}.wb-no-select{user-select:none;-webkit-user-select:none}.wb-no-select span.wb-title{user-select:contain;-webkit-user-select:contain}.wb-helper-start,.wb-helper-start>input{text-align:left}.wb-helper-end,.wb-helper-end>input{text-align:right}.wb-rtl .wb-helper-start,.wb-rtl .wb-helper-start>input{text-align:right}.wb-rtl .wb-helper-end,.wb-rtl .wb-helper-end>input{text-align:left}.wb-col input[type="checkbox"]:indeterminate{color:#8c877c;background-color:red}.wb-col input:invalid{color:#b5373b;background-color:#f5ddde}@keyframes wb-spin-animation{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes wb-skeleton-animation{0%{background-color:#a3b8c2}100%{background-color:#f0f3f5}}@keyframes wb-busy-animation{0%{background-position:0 0}100%{background-position:0 22px}}
|