lexgui 0.1.29 → 0.1.30
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/build/components/codeeditor.js +11 -22
- package/build/components/nodegraph.js +806 -342
- package/build/lexgui.css +70 -36
- package/build/lexgui.js +110 -29
- package/build/lexgui.module.js +108 -27
- package/changelog.md +19 -0
- package/examples/code_editor.html +10 -13
- package/examples/index.html +1 -1
- package/examples/node_graph.html +1 -0
- package/examples/previews/code_editor.png +0 -0
- package/examples/previews/dialogs.png +0 -0
- package/examples/previews/node_graph.png +0 -0
- package/package.json +1 -1
package/build/lexgui.css
CHANGED
|
@@ -91,6 +91,11 @@ body.noevents * {
|
|
|
91
91
|
display: none !important;
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
+
.hiddenOpacity {
|
|
95
|
+
opacity: 0 !important;
|
|
96
|
+
pointer-events: none;
|
|
97
|
+
}
|
|
98
|
+
|
|
94
99
|
::-webkit-file-upload-button {
|
|
95
100
|
display: none;
|
|
96
101
|
}
|
|
@@ -102,9 +107,11 @@ body.noevents * {
|
|
|
102
107
|
bottom: 0;
|
|
103
108
|
width: 100%;
|
|
104
109
|
height: 100%;
|
|
105
|
-
background-color: rgba(0, 0, 0, 0.
|
|
110
|
+
background-color: rgba(0, 0, 0, 0.5);
|
|
106
111
|
position: absolute;
|
|
107
112
|
z-index: 99;
|
|
113
|
+
opacity: 1;
|
|
114
|
+
transition: opacity 0.2s ease-in;
|
|
108
115
|
}
|
|
109
116
|
|
|
110
117
|
#lexroot {
|
|
@@ -1557,11 +1564,11 @@ input[type="range"] {
|
|
|
1557
1564
|
margin-top: 2px;
|
|
1558
1565
|
}
|
|
1559
1566
|
|
|
1560
|
-
.lexprogressbar.editable:hover{
|
|
1567
|
+
.lexprogressbar.editable:hover {
|
|
1561
1568
|
cursor: grab;
|
|
1562
1569
|
}
|
|
1563
1570
|
|
|
1564
|
-
.lexprogressbar.editable:active{
|
|
1571
|
+
.lexprogressbar.editable:active {
|
|
1565
1572
|
cursor: grabbing;
|
|
1566
1573
|
}
|
|
1567
1574
|
|
|
@@ -1573,10 +1580,10 @@ meter::-webkit-meter-bar {
|
|
|
1573
1580
|
|
|
1574
1581
|
/* (optimum) */
|
|
1575
1582
|
meter:-moz-meter-optimum::-moz-meter-bar {
|
|
1576
|
-
background: var(--global-selected
|
|
1583
|
+
background: var(--global-selected);
|
|
1577
1584
|
}
|
|
1578
1585
|
meter::-webkit-meter-optimum-value {
|
|
1579
|
-
background: var(--global-selected
|
|
1586
|
+
background: var(--global-selected);
|
|
1580
1587
|
}
|
|
1581
1588
|
|
|
1582
1589
|
/* (sub-optimum)*/
|
|
@@ -1926,16 +1933,35 @@ meter::-webkit-meter-even-less-good-value {
|
|
|
1926
1933
|
/* Side Bar */
|
|
1927
1934
|
|
|
1928
1935
|
.lexsidebar {
|
|
1929
|
-
|
|
1936
|
+
text-align: center;
|
|
1930
1937
|
}
|
|
1931
1938
|
|
|
1932
1939
|
.lexsidebar .lexsidebarentry {
|
|
1933
1940
|
width: 64px;
|
|
1934
1941
|
height: 64px;
|
|
1935
|
-
padding-left: 7.5px;
|
|
1936
1942
|
margin-top: -6px;
|
|
1937
1943
|
}
|
|
1938
1944
|
|
|
1945
|
+
.lexsidebar .lexsidebarentry .lexsidebarentrydesc {
|
|
1946
|
+
position: absolute;
|
|
1947
|
+
margin-left: 12px;
|
|
1948
|
+
font-weight: 600;
|
|
1949
|
+
margin-top: 13px;
|
|
1950
|
+
background-color: #afafaf;
|
|
1951
|
+
color: var(--global-color-primary);
|
|
1952
|
+
font-size: 16px;
|
|
1953
|
+
border-radius: 6px;
|
|
1954
|
+
text-align: center;
|
|
1955
|
+
opacity: 0;
|
|
1956
|
+
z-index: 1;
|
|
1957
|
+
padding: 2px 6px;
|
|
1958
|
+
transition: opacity ease-in 0.1s;
|
|
1959
|
+
}
|
|
1960
|
+
|
|
1961
|
+
.lexsidebar .lexsidebarentry button:hover + .lexsidebarentrydesc {
|
|
1962
|
+
opacity: 1;
|
|
1963
|
+
}
|
|
1964
|
+
|
|
1939
1965
|
.lexsidebar .lexsidebarentry:first-child {
|
|
1940
1966
|
padding-top: 16px;
|
|
1941
1967
|
}
|
|
@@ -1949,6 +1975,7 @@ meter::-webkit-meter-even-less-good-value {
|
|
|
1949
1975
|
border-radius: 10px;
|
|
1950
1976
|
border: 0px solid var(--global-color-transparent);
|
|
1951
1977
|
transition: border 0.1s ease-in-out;
|
|
1978
|
+
cursor: pointer;
|
|
1952
1979
|
}
|
|
1953
1980
|
|
|
1954
1981
|
.lexsidebar .lexsidebarentry button:hover {
|
|
@@ -2152,6 +2179,12 @@ meter::-webkit-meter-even-less-good-value {
|
|
|
2152
2179
|
line-height: 16px;
|
|
2153
2180
|
}
|
|
2154
2181
|
|
|
2182
|
+
.lexareatabs .lexareatab.thumb {
|
|
2183
|
+
position: absolute;
|
|
2184
|
+
background-color: var(--global-selected-dark);
|
|
2185
|
+
z-index: 0;
|
|
2186
|
+
}
|
|
2187
|
+
|
|
2155
2188
|
.lexareatabs.row {
|
|
2156
2189
|
width: 100%;
|
|
2157
2190
|
}
|
|
@@ -2170,31 +2203,35 @@ meter::-webkit-meter-even-less-good-value {
|
|
|
2170
2203
|
}
|
|
2171
2204
|
|
|
2172
2205
|
.lexareatabs.fit {
|
|
2173
|
-
background-color: var(--global-color-secondary);
|
|
2174
2206
|
width: calc(100% - 14px);
|
|
2175
2207
|
}
|
|
2176
2208
|
|
|
2177
2209
|
.lexareatabs.fit .lexareatab {
|
|
2178
2210
|
flex: 100%;
|
|
2179
2211
|
border-radius: 10px;
|
|
2212
|
+
z-index: 1;
|
|
2180
2213
|
}
|
|
2181
2214
|
|
|
2182
2215
|
.lexareatabs .lexareatab:active {
|
|
2183
2216
|
color: #b7b7cba4;
|
|
2184
2217
|
}
|
|
2185
2218
|
|
|
2219
|
+
.lexareatabs.fit .lexareatab.selected {
|
|
2220
|
+
color: #f8f8f8;
|
|
2221
|
+
}
|
|
2222
|
+
|
|
2186
2223
|
.lexareatabs.row .lexareatab.selected {
|
|
2187
2224
|
color: var(--global-text);
|
|
2188
|
-
background-color: var(--global-selected);
|
|
2225
|
+
background-color: var(--global-selected-dark);
|
|
2189
2226
|
}
|
|
2190
2227
|
|
|
2191
|
-
.lexareatabs.
|
|
2228
|
+
.lexareatabs.folding .lexareatab.selected {
|
|
2192
2229
|
color: var(--global-text-primary);
|
|
2193
2230
|
background-color: #555556;
|
|
2194
2231
|
}
|
|
2195
2232
|
|
|
2196
2233
|
.lexareatabs .lexareatab:hover {
|
|
2197
|
-
color:
|
|
2234
|
+
color: #f8f8f8;
|
|
2198
2235
|
}
|
|
2199
2236
|
|
|
2200
2237
|
.lexareatabscontainer {
|
|
@@ -2233,33 +2270,36 @@ meter::-webkit-meter-even-less-good-value {
|
|
|
2233
2270
|
|
|
2234
2271
|
.lexcard img {
|
|
2235
2272
|
width: 100%;
|
|
2236
|
-
height:
|
|
2273
|
+
height: 128px;
|
|
2237
2274
|
object-fit: cover;
|
|
2238
2275
|
border-radius: 6px;
|
|
2239
|
-
outline: 3px solid var(--global-text-
|
|
2276
|
+
outline: 3px solid var(--global-text-terciary);
|
|
2240
2277
|
}
|
|
2241
2278
|
|
|
2242
2279
|
.lexcard:hover a {
|
|
2243
|
-
color: var(--global-selected
|
|
2280
|
+
color: var(--global-selected);
|
|
2244
2281
|
}
|
|
2245
2282
|
|
|
2246
2283
|
.lexcard:hover img {
|
|
2247
|
-
outline: 3px solid var(--global-selected
|
|
2284
|
+
outline: 3px solid var(--global-selected);
|
|
2248
2285
|
}
|
|
2249
2286
|
|
|
2250
2287
|
.lexcard span {
|
|
2251
|
-
width: calc(100% -
|
|
2288
|
+
width: calc(100% - 18px);
|
|
2252
2289
|
display: flex;
|
|
2253
|
-
background-color: rgba(15, 16, 19, 0.
|
|
2290
|
+
background-color: rgba(15, 16, 19, 0.8);
|
|
2254
2291
|
align-items: center;
|
|
2255
2292
|
height: 16px;
|
|
2256
2293
|
position: absolute;
|
|
2257
2294
|
top: 0;
|
|
2258
|
-
|
|
2295
|
+
left: 0;
|
|
2296
|
+
padding: 8px;
|
|
2259
2297
|
border-top-left-radius: 6px;
|
|
2260
2298
|
border-top-right-radius: 6px;
|
|
2261
2299
|
font-weight: bold;
|
|
2262
|
-
font-size: 1.
|
|
2300
|
+
font-size: 1.3em;
|
|
2301
|
+
font-family: var(--global-title-font);
|
|
2302
|
+
text-transform: uppercase;
|
|
2263
2303
|
}
|
|
2264
2304
|
|
|
2265
2305
|
.lexcard span a {
|
|
@@ -2268,7 +2308,7 @@ meter::-webkit-meter-even-less-good-value {
|
|
|
2268
2308
|
}
|
|
2269
2309
|
|
|
2270
2310
|
.lexcard span a:hover {
|
|
2271
|
-
color: var(--global-selected
|
|
2311
|
+
color: var(--global-selected);
|
|
2272
2312
|
}
|
|
2273
2313
|
|
|
2274
2314
|
/* Layers Widget */
|
|
@@ -2914,7 +2954,7 @@ ul.lexassetscontent {
|
|
|
2914
2954
|
}
|
|
2915
2955
|
|
|
2916
2956
|
.lexcodeeditor .codetabsarea {
|
|
2917
|
-
height: calc( 100% -
|
|
2957
|
+
height: calc( 100% - 72px ) !important;
|
|
2918
2958
|
background-color: var(--global-branch-darker);
|
|
2919
2959
|
overflow: scroll;
|
|
2920
2960
|
}
|
|
@@ -3375,6 +3415,10 @@ pre .line-gutter {
|
|
|
3375
3415
|
background-color: unset; background-origin: border-box;
|
|
3376
3416
|
}
|
|
3377
3417
|
|
|
3418
|
+
.lexgraphnode.function {
|
|
3419
|
+
background: linear-gradient(15deg, #d19b06da 10%, #ff7b00da);
|
|
3420
|
+
background-color: unset; background-origin: border-box;
|
|
3421
|
+
}
|
|
3378
3422
|
|
|
3379
3423
|
.lexgraphnode.selected {
|
|
3380
3424
|
border: 3px solid var(--global-selected-dark);
|
|
@@ -3590,19 +3634,9 @@ pre .line-gutter {
|
|
|
3590
3634
|
border-right: 2px solid #4b4b4ba8;
|
|
3591
3635
|
}
|
|
3592
3636
|
|
|
3593
|
-
|
|
3594
|
-
|
|
3595
|
-
background-color: unset;
|
|
3596
|
-
}
|
|
3597
|
-
|
|
3598
|
-
.lexgraphnodeproperties .lexwidget.nobranch {
|
|
3599
|
-
padding: 0px;
|
|
3600
|
-
}
|
|
3601
|
-
|
|
3602
|
-
.lexgraphnodeproperties .lexwidget input {
|
|
3603
|
-
font-size: 14px;
|
|
3604
|
-
font-weight: 800;
|
|
3605
|
-
color: var(--global-color-primary);
|
|
3637
|
+
.grapharea .graph-title button {
|
|
3638
|
+
font-size: 16px;
|
|
3606
3639
|
font-family: var(--global-title-font);
|
|
3607
|
-
|
|
3608
|
-
|
|
3640
|
+
font-weight: 600;
|
|
3641
|
+
color: var(--global-text);
|
|
3642
|
+
}
|
package/build/lexgui.js
CHANGED
|
@@ -12,7 +12,7 @@ console.warn( 'Script "build/lexgui.js" is depracated and will be removed soon.
|
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
var LX = global.LX = {
|
|
15
|
-
version: "0.1.
|
|
15
|
+
version: "0.1.30",
|
|
16
16
|
ready: false,
|
|
17
17
|
components: [], // specific pre-build components
|
|
18
18
|
signals: {} // events and triggers
|
|
@@ -421,33 +421,38 @@ console.warn( 'Script "build/lexgui.js" is depracated and will be removed soon.
|
|
|
421
421
|
|
|
422
422
|
/**
|
|
423
423
|
* @method init
|
|
424
|
-
* @param {
|
|
424
|
+
* @param {Object} options
|
|
425
425
|
* container: Root location for the gui (default is the document body)
|
|
426
|
+
* id: Id of the main area
|
|
426
427
|
* skip_default_area: Skip creation of main area
|
|
427
428
|
*/
|
|
428
429
|
|
|
429
|
-
function init(options = {})
|
|
430
|
+
function init( options = { } )
|
|
430
431
|
{
|
|
431
|
-
if(this.ready)
|
|
432
|
+
if( this.ready )
|
|
432
433
|
return this.main_area;
|
|
433
434
|
|
|
434
|
-
// LexGUI root
|
|
435
|
-
|
|
436
|
-
|
|
435
|
+
// LexGUI root
|
|
436
|
+
|
|
437
|
+
var root = document.createElement( 'div' );
|
|
438
|
+
root.id = "lexroot";
|
|
437
439
|
root.tabIndex = -1;
|
|
438
440
|
|
|
439
|
-
var modal = document.createElement(
|
|
441
|
+
var modal = document.createElement( 'div' );
|
|
440
442
|
modal.id = "modal";
|
|
441
443
|
|
|
442
444
|
this.modal = modal;
|
|
443
445
|
this.root = root;
|
|
444
446
|
this.container = document.body;
|
|
445
447
|
|
|
446
|
-
this.modal.toggleAttribute('hidden', true);
|
|
447
|
-
this.modal.toggle = function(force) { this.toggleAttribute('hidden', force); };
|
|
448
|
+
// this.modal.toggleAttribute( 'hidden', true );
|
|
449
|
+
// this.modal.toggle = function( force ) { this.toggleAttribute( 'hidden', force ); };
|
|
450
|
+
|
|
451
|
+
this.modal.classList.add( 'hiddenOpacity' );
|
|
452
|
+
this.modal.toggle = function( force ) { this.classList.toggle( 'hiddenOpacity', force ); };
|
|
448
453
|
|
|
449
|
-
if(options.container)
|
|
450
|
-
this.container = document.getElementById(options.container);
|
|
454
|
+
if( options.container )
|
|
455
|
+
this.container = document.getElementById( options.container );
|
|
451
456
|
|
|
452
457
|
this.global_search = create_global_searchbar( this.container );
|
|
453
458
|
|
|
@@ -455,17 +460,17 @@ console.warn( 'Script "build/lexgui.js" is depracated and will be removed soon.
|
|
|
455
460
|
this.container.appendChild( root );
|
|
456
461
|
|
|
457
462
|
// Disable drag icon
|
|
458
|
-
root.addEventListener(
|
|
463
|
+
root.addEventListener( 'dragover', function( e ) {
|
|
459
464
|
e.preventDefault();
|
|
460
465
|
}, false );
|
|
461
466
|
|
|
462
467
|
// CSS fontawesome
|
|
463
|
-
var head = document.getElementsByTagName('HEAD')[0];
|
|
464
|
-
var link = document.createElement('link');
|
|
468
|
+
var head = document.getElementsByTagName( 'HEAD' )[ 0 ];
|
|
469
|
+
var link = document.createElement( 'link' );
|
|
465
470
|
link.rel = 'stylesheet';
|
|
466
471
|
link.type = 'text/css';
|
|
467
|
-
link.href = 'https://use.fontawesome.com/releases/v6.
|
|
468
|
-
head.appendChild(link);
|
|
472
|
+
link.href = 'https://use.fontawesome.com/releases/v6.5.1/css/all.css';
|
|
473
|
+
head.appendChild( link );
|
|
469
474
|
|
|
470
475
|
// Global vars
|
|
471
476
|
this.DEFAULT_NAME_WIDTH = "30%";
|
|
@@ -473,10 +478,10 @@ console.warn( 'Script "build/lexgui.js" is depracated and will be removed soon.
|
|
|
473
478
|
this.OPEN_CONTEXTMENU_ENTRY = 'click';
|
|
474
479
|
|
|
475
480
|
this.ready = true;
|
|
476
|
-
this.menubars = [];
|
|
481
|
+
this.menubars = [ ];
|
|
477
482
|
|
|
478
|
-
if(!options.skip_default_area)
|
|
479
|
-
this.main_area = new Area( {id: options.id ??
|
|
483
|
+
if( !options.skip_default_area )
|
|
484
|
+
this.main_area = new Area( { id: options.id ?? 'mainarea' } );
|
|
480
485
|
|
|
481
486
|
return this.main_area;
|
|
482
487
|
}
|
|
@@ -1307,7 +1312,8 @@ console.warn( 'Script "build/lexgui.js" is depracated and will be removed soon.
|
|
|
1307
1312
|
selectable: b.selectable,
|
|
1308
1313
|
selected: b.selected,
|
|
1309
1314
|
icon: b.icon,
|
|
1310
|
-
img: b.img
|
|
1315
|
+
img: b.img,
|
|
1316
|
+
className: b.class
|
|
1311
1317
|
};
|
|
1312
1318
|
|
|
1313
1319
|
if( group )
|
|
@@ -1517,7 +1523,7 @@ console.warn( 'Script "build/lexgui.js" is depracated and will be removed soon.
|
|
|
1517
1523
|
|
|
1518
1524
|
let container = document.createElement('div');
|
|
1519
1525
|
container.className = "lexareatabs " + (options.fit ? "fit" : "row");
|
|
1520
|
-
|
|
1526
|
+
|
|
1521
1527
|
const folding = options.folding ?? false;
|
|
1522
1528
|
if(folding) container.classList.add("folding");
|
|
1523
1529
|
|
|
@@ -1552,7 +1558,7 @@ console.warn( 'Script "build/lexgui.js" is depracated and will be removed soon.
|
|
|
1552
1558
|
|
|
1553
1559
|
// Show on drop
|
|
1554
1560
|
el.click();
|
|
1555
|
-
|
|
1561
|
+
|
|
1556
1562
|
// Store info
|
|
1557
1563
|
that.tabs[ el.dataset["name"] ] = content;
|
|
1558
1564
|
});
|
|
@@ -1569,6 +1575,29 @@ console.warn( 'Script "build/lexgui.js" is depracated and will be removed soon.
|
|
|
1569
1575
|
this.tabs = {};
|
|
1570
1576
|
this.tabDOMs = {};
|
|
1571
1577
|
|
|
1578
|
+
if( options.fit )
|
|
1579
|
+
{
|
|
1580
|
+
// Create movable element
|
|
1581
|
+
let mEl = document.createElement('span');
|
|
1582
|
+
mEl.className = "lexareatab thumb";
|
|
1583
|
+
this.thumb = mEl;
|
|
1584
|
+
this.root.appendChild( mEl );
|
|
1585
|
+
|
|
1586
|
+
const resizeObserver = new ResizeObserver((entries) => {
|
|
1587
|
+
const tabEl = this.thumb.item;
|
|
1588
|
+
if( !tabEl ) return;
|
|
1589
|
+
var transition = this.thumb.style.transition;
|
|
1590
|
+
this.thumb.style.transition = "none";
|
|
1591
|
+
this.thumb.style.transform = "translate( " + ( tabEl.childIndex * tabEl.offsetWidth ) + "px )";
|
|
1592
|
+
this.thumb.style.width = ( tabEl.offsetWidth - 5 ) + "px";
|
|
1593
|
+
this.thumb.style.height = ( tabEl.offsetHeight - 6 ) + "px";
|
|
1594
|
+
flushCss( this.thumb );
|
|
1595
|
+
this.thumb.style.transition = transition;
|
|
1596
|
+
});
|
|
1597
|
+
|
|
1598
|
+
resizeObserver.observe( this.area.root );
|
|
1599
|
+
}
|
|
1600
|
+
|
|
1572
1601
|
// debug
|
|
1573
1602
|
if(folding)
|
|
1574
1603
|
{
|
|
@@ -1666,6 +1695,14 @@ console.warn( 'Script "build/lexgui.js" is depracated and will be removed soon.
|
|
|
1666
1695
|
|
|
1667
1696
|
if(options.onSelect)
|
|
1668
1697
|
options.onSelect(e, tabEl.dataset.name);
|
|
1698
|
+
|
|
1699
|
+
if( this.thumb )
|
|
1700
|
+
{
|
|
1701
|
+
this.thumb.style.transform = "translate( " + ( tabEl.childIndex * tabEl.offsetWidth ) + "px )";
|
|
1702
|
+
this.thumb.style.width = ( tabEl.offsetWidth - 5 ) + "px";
|
|
1703
|
+
this.thumb.style.height = ( tabEl.offsetHeight - 6 ) + "px";
|
|
1704
|
+
this.thumb.item = tabEl;
|
|
1705
|
+
}
|
|
1669
1706
|
});
|
|
1670
1707
|
|
|
1671
1708
|
tabEl.addEventListener("contextmenu", e => {
|
|
@@ -1694,13 +1731,26 @@ console.warn( 'Script "build/lexgui.js" is depracated and will be removed soon.
|
|
|
1694
1731
|
});
|
|
1695
1732
|
|
|
1696
1733
|
// Attach content
|
|
1734
|
+
tabEl.childIndex = ( this.root.childElementCount - 1 );
|
|
1697
1735
|
this.root.appendChild( tabEl );
|
|
1698
1736
|
this.area.attach( contentEl );
|
|
1699
1737
|
this.tabDOMs[ name ] = tabEl;
|
|
1700
1738
|
this.tabs[ name ] = content;
|
|
1701
1739
|
|
|
1702
1740
|
setTimeout( () => {
|
|
1703
|
-
|
|
1741
|
+
|
|
1742
|
+
if( options.onCreate ) {
|
|
1743
|
+
options.onCreate.call(this, this.area.root.getBoundingClientRect());
|
|
1744
|
+
}
|
|
1745
|
+
|
|
1746
|
+
if( isSelected && this.thumb )
|
|
1747
|
+
{
|
|
1748
|
+
this.thumb.style.transform = "translate( " + ( tabEl.childIndex * tabEl.offsetWidth ) + "px )";
|
|
1749
|
+
this.thumb.style.width = ( tabEl.offsetWidth - 5 ) + "px";
|
|
1750
|
+
this.thumb.style.height = ( tabEl.offsetHeight - 6 ) + "px";
|
|
1751
|
+
this.thumb.item = tabEl;
|
|
1752
|
+
}
|
|
1753
|
+
|
|
1704
1754
|
}, 10 );
|
|
1705
1755
|
}
|
|
1706
1756
|
|
|
@@ -2195,6 +2245,7 @@ console.warn( 'Script "build/lexgui.js" is depracated and will be removed soon.
|
|
|
2195
2245
|
* @param {*} options:
|
|
2196
2246
|
* callback: Function to call on each item
|
|
2197
2247
|
* bottom: Bool to set item at the bottom as helper button (not selectable)
|
|
2248
|
+
* className: Add class to the entry DOM element
|
|
2198
2249
|
*/
|
|
2199
2250
|
|
|
2200
2251
|
add( key, options = {} ) {
|
|
@@ -2211,14 +2262,14 @@ console.warn( 'Script "build/lexgui.js" is depracated and will be removed soon.
|
|
|
2211
2262
|
}
|
|
2212
2263
|
|
|
2213
2264
|
let entry = document.createElement( 'div' );
|
|
2214
|
-
entry.className = "lexsidebarentry";
|
|
2265
|
+
entry.className = "lexsidebarentry " + ( options.className ?? "" );
|
|
2215
2266
|
entry.id = pKey;
|
|
2216
|
-
entry.title = key;
|
|
2217
2267
|
|
|
2218
2268
|
if( options.bottom )
|
|
2219
2269
|
{
|
|
2220
2270
|
this.footer.appendChild( entry );
|
|
2221
|
-
}
|
|
2271
|
+
}
|
|
2272
|
+
else
|
|
2222
2273
|
{
|
|
2223
2274
|
this.root.appendChild( entry );
|
|
2224
2275
|
}
|
|
@@ -2230,6 +2281,11 @@ console.warn( 'Script "build/lexgui.js" is depracated and will be removed soon.
|
|
|
2230
2281
|
button.innerHTML = "<i class='"+ (options.icon ?? "") + "'></i>";
|
|
2231
2282
|
entry.appendChild( button );
|
|
2232
2283
|
|
|
2284
|
+
let desc = document.createElement( 'span' );
|
|
2285
|
+
desc.className = 'lexsidebarentrydesc';
|
|
2286
|
+
desc.innerHTML = key;
|
|
2287
|
+
entry.appendChild( desc );
|
|
2288
|
+
|
|
2233
2289
|
entry.addEventListener("click", () => {
|
|
2234
2290
|
|
|
2235
2291
|
const f = options.callback;
|
|
@@ -2245,6 +2301,23 @@ console.warn( 'Script "build/lexgui.js" is depracated and will be removed soon.
|
|
|
2245
2301
|
|
|
2246
2302
|
this.items.push( { name: pKey, domEl: entry, callback: options.callback } );
|
|
2247
2303
|
}
|
|
2304
|
+
|
|
2305
|
+
/**
|
|
2306
|
+
* @method select
|
|
2307
|
+
* @param {String} name Element name to select
|
|
2308
|
+
*/
|
|
2309
|
+
|
|
2310
|
+
select( name ) {
|
|
2311
|
+
|
|
2312
|
+
let pKey = name.replace( /\s/g, '' ).replaceAll( '.', '' );
|
|
2313
|
+
|
|
2314
|
+
const entry = this.items.find( v => v.name === pKey );
|
|
2315
|
+
|
|
2316
|
+
if( !entry )
|
|
2317
|
+
return;
|
|
2318
|
+
|
|
2319
|
+
entry.domEl.click();
|
|
2320
|
+
}
|
|
2248
2321
|
};
|
|
2249
2322
|
|
|
2250
2323
|
LX.SideBar = SideBar;
|
|
@@ -3137,7 +3210,7 @@ console.warn( 'Script "build/lexgui.js" is depracated and will be removed soon.
|
|
|
3137
3210
|
|
|
3138
3211
|
if( type != Widget.TITLE )
|
|
3139
3212
|
{
|
|
3140
|
-
element.style.width = "calc(100% - " + (this.current_branch || type == Widget.FILE ? 10 : 20) + "px)";
|
|
3213
|
+
element.style.width = "calc(100% - " + (this.current_branch || type == Widget.FILE || ( type == Widget.BUTTON && !name ) ? 10 : 20) + "px)";
|
|
3141
3214
|
if( options.width ) {
|
|
3142
3215
|
element.style.width = element.style.minWidth = options.width;
|
|
3143
3216
|
}
|
|
@@ -4397,7 +4470,7 @@ console.warn( 'Script "build/lexgui.js" is depracated and will be removed soon.
|
|
|
4397
4470
|
buttonName = "Add item";
|
|
4398
4471
|
buttonName += "<a class='fa-solid fa-plus' style='float:right; margin-right: 3px; margin-top: 2px;'></a>";
|
|
4399
4472
|
this.addButton(null, buttonName, (v, event) => {
|
|
4400
|
-
values.push( "" );
|
|
4473
|
+
values.push( options.innerValues ? options.innerValues[ 0 ] : "" );
|
|
4401
4474
|
updateItems();
|
|
4402
4475
|
this._trigger( new IEvent(name, values, event), callback );
|
|
4403
4476
|
}, { buttonClass: 'array' });
|
|
@@ -5271,6 +5344,7 @@ console.warn( 'Script "build/lexgui.js" is depracated and will be removed soon.
|
|
|
5271
5344
|
* @param {Function} callback Callback function on change
|
|
5272
5345
|
* @param {*} options:
|
|
5273
5346
|
* local: Ask for local file
|
|
5347
|
+
* read: Return the file itself (False) or the contents (True)
|
|
5274
5348
|
* type: type to read as [text (Default), buffer, bin, url]
|
|
5275
5349
|
*/
|
|
5276
5350
|
|
|
@@ -7553,6 +7627,13 @@ console.warn( 'Script "build/lexgui.js" is depracated and will be removed soon.
|
|
|
7553
7627
|
compareThresholdRange( v0, v1, t0, t1 ) { return v0 >= t0 && v0 <= t1 || v1 >= t0 && v1 <= t1 || v0 <= t0 && v1 >= t1},
|
|
7554
7628
|
clamp (num, min, max) { return Math.min(Math.max(num, min), max) },
|
|
7555
7629
|
uidGenerator: simple_guidGenerator,
|
|
7630
|
+
deleteElement( el ) { if( el ) el.remove(); },
|
|
7631
|
+
flushCss(element) {
|
|
7632
|
+
// By reading the offsetHeight property, we are forcing
|
|
7633
|
+
// the browser to flush the pending CSS changes (which it
|
|
7634
|
+
// does to ensure the value obtained is accurate).
|
|
7635
|
+
element.offsetHeight;
|
|
7636
|
+
},
|
|
7556
7637
|
getControlPoints( x0, y0, x1, y1, x2, y2 ,t ) {
|
|
7557
7638
|
|
|
7558
7639
|
// x0,y0,x1,y1 are the coordinates of the end (knot) pts of this segment
|