@genexus/genexus-ide-ui 0.0.99 → 0.0.100
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/cjs/ch-icon_5.cjs.entry.js +3 -2
- package/dist/cjs/ch-icon_5.cjs.entry.js.map +1 -1
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js.map +1 -1
- package/dist/cjs/{gx-ide-recent-news.cjs.entry.js → gx-ide-empty-state_2.cjs.entry.js} +64 -2
- package/dist/cjs/gx-ide-empty-state_2.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-import-from-design.cjs.entry.js +2 -9
- package/dist/cjs/gx-ide-import-from-design.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-start-page.cjs.entry.js +9 -5
- package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-status-buttons_2.cjs.entry.js +41 -27
- package/dist/cjs/gx-ide-status-buttons_2.cjs.entry.js.map +1 -1
- package/dist/cjs/gxg-card_2.cjs.entry.js +10 -5
- package/dist/cjs/gxg-card_2.cjs.entry.js.map +1 -1
- package/dist/cjs/gxg-combo-box_2.cjs.entry.js +62 -24
- package/dist/cjs/gxg-combo-box_2.cjs.entry.js.map +1 -1
- package/dist/cjs/gxg-list-box_2.cjs.entry.js +28 -3
- package/dist/cjs/gxg-list-box_2.cjs.entry.js.map +1 -1
- package/dist/cjs/gxg-menu-item.cjs.entry.js +1 -1
- package/dist/cjs/gxg-menu-item.cjs.entry.js.map +1 -1
- package/dist/cjs/gxg-pill.cjs.entry.js +5 -5
- package/dist/cjs/gxg-pill.cjs.entry.js.map +1 -1
- package/dist/cjs/gxg-pills.cjs.entry.js +1 -1
- package/dist/cjs/gxg-pills.cjs.entry.js.map +1 -1
- package/dist/cjs/gxg-tab_4.cjs.entry.js +97 -17
- package/dist/cjs/gxg-tab_4.cjs.entry.js.map +1 -1
- package/dist/cjs/gxg-window-v2.cjs.entry.js +28 -0
- package/dist/cjs/gxg-window-v2.cjs.entry.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +3 -1
- package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.css +40 -0
- package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.js +180 -0
- package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.js.map +1 -0
- package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.js +1 -1
- package/dist/collection/components/_helpers/list-selector/list-selector.js +1 -1
- package/dist/collection/components/dashboard-home/dashboard-home.css +5 -0
- package/dist/collection/components/dashboard-home/dashboard-home.js +1 -1
- package/dist/collection/components/dashboard-home/dashboard-home.js.map +1 -1
- package/dist/collection/components/import-from-design/import-from-design.js +3 -12
- package/dist/collection/components/import-from-design/import-from-design.js.map +1 -1
- package/dist/collection/components/start-page/recent-news.css +1 -1
- package/dist/collection/components/start-page/start-page.css +4 -0
- package/dist/collection/components/start-page/start-page.js +8 -4
- package/dist/collection/components/start-page/start-page.js.map +1 -1
- package/dist/components/card.js +11 -5
- package/dist/components/card.js.map +1 -1
- package/dist/components/combo-box.js +62 -24
- package/dist/components/combo-box.js.map +1 -1
- package/dist/components/gx-ide-dashboard-home.js +2 -2
- package/dist/components/gx-ide-dashboard-home.js.map +1 -1
- package/dist/components/gx-ide-empty-state.d.ts +11 -0
- package/dist/components/gx-ide-empty-state.js +8 -0
- package/dist/components/gx-ide-empty-state.js.map +1 -0
- package/dist/components/gx-ide-empty-state2.js +126 -0
- package/dist/components/gx-ide-empty-state2.js.map +1 -0
- package/dist/components/gx-ide-import-from-design.js +3 -11
- package/dist/components/gx-ide-import-from-design.js.map +1 -1
- package/dist/components/gx-ide-start-page.js +21 -11
- package/dist/components/gx-ide-start-page.js.map +1 -1
- package/dist/components/gxg-menu-item.js +1 -1
- package/dist/components/gxg-menu-item.js.map +1 -1
- package/dist/components/gxg-pills.js +1 -1
- package/dist/components/gxg-pills.js.map +1 -1
- package/dist/components/gxg-top-state-bar2.js +46 -30
- package/dist/components/gxg-top-state-bar2.js.map +1 -1
- package/dist/components/gxg-window-v2.js +44 -0
- package/dist/components/gxg-window-v2.js.map +1 -0
- package/dist/components/icon2.js +3 -2
- package/dist/components/icon2.js.map +1 -1
- package/dist/components/list-box.js +27 -1
- package/dist/components/list-box.js.map +1 -1
- package/dist/components/pill.js +5 -5
- package/dist/components/pill.js.map +1 -1
- package/dist/components/recent-news.js +1 -1
- package/dist/components/recent-news.js.map +1 -1
- package/dist/components/tab-bar.js +17 -9
- package/dist/components/tab-bar.js.map +1 -1
- package/dist/components/tab-button.js +11 -4
- package/dist/components/tab-button.js.map +1 -1
- package/dist/components/tab.js +6 -3
- package/dist/components/tab.js.map +1 -1
- package/dist/components/tabs.js +73 -4
- package/dist/components/tabs.js.map +1 -1
- package/dist/esm/ch-icon_5.entry.js +3 -2
- package/dist/esm/ch-icon_5.entry.js.map +1 -1
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-dashboard-home.entry.js +2 -2
- package/dist/esm/gx-ide-dashboard-home.entry.js.map +1 -1
- package/dist/esm/{gx-ide-recent-news.entry.js → gx-ide-empty-state_2.entry.js} +64 -3
- package/dist/esm/gx-ide-empty-state_2.entry.js.map +1 -0
- package/dist/esm/gx-ide-import-from-design.entry.js +2 -9
- package/dist/esm/gx-ide-import-from-design.entry.js.map +1 -1
- package/dist/esm/gx-ide-start-page.entry.js +9 -5
- package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
- package/dist/esm/gx-ide-status-buttons_2.entry.js +41 -27
- package/dist/esm/gx-ide-status-buttons_2.entry.js.map +1 -1
- package/dist/esm/gxg-card_2.entry.js +10 -5
- package/dist/esm/gxg-card_2.entry.js.map +1 -1
- package/dist/esm/gxg-combo-box_2.entry.js +62 -24
- package/dist/esm/gxg-combo-box_2.entry.js.map +1 -1
- package/dist/esm/gxg-list-box_2.entry.js +27 -2
- package/dist/esm/gxg-list-box_2.entry.js.map +1 -1
- package/dist/esm/gxg-menu-item.entry.js +1 -1
- package/dist/esm/gxg-menu-item.entry.js.map +1 -1
- package/dist/esm/gxg-pill.entry.js +5 -5
- package/dist/esm/gxg-pill.entry.js.map +1 -1
- package/dist/esm/gxg-pills.entry.js +1 -1
- package/dist/esm/gxg-pills.entry.js.map +1 -1
- package/dist/esm/gxg-tab_4.entry.js +97 -17
- package/dist/esm/gxg-tab_4.entry.js.map +1 -1
- package/dist/esm/gxg-window-v2.entry.js +24 -0
- package/dist/esm/gxg-window-v2.entry.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.css +74 -7
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/icon-assets/mercury/tests/balanza-path.svg +3 -0
- package/dist/genexus-ide-ui/icon-assets/mercury/tests/balanza-stroke.svg +9 -0
- package/dist/genexus-ide-ui/icon-assets/mercury/tests/folder-2.svg +3 -0
- package/dist/genexus-ide-ui/{p-b8fc93f4.entry.js → p-2c8afaa6.entry.js} +147 -112
- package/dist/genexus-ide-ui/p-2c8afaa6.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-5ca84a03.entry.js → p-4e155cd5.entry.js} +27 -4
- package/dist/genexus-ide-ui/p-4e155cd5.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-4fc6d6a7.entry.js +24 -0
- package/dist/genexus-ide-ui/p-4fc6d6a7.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-54e4b362.entry.js +270 -0
- package/dist/genexus-ide-ui/p-54e4b362.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-73aa4e69.entry.js → p-71f8aba2.entry.js} +13 -13
- package/dist/genexus-ide-ui/{p-73aa4e69.entry.js.map → p-71f8aba2.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-545291ad.entry.js → p-7dc3a137.entry.js} +4 -3
- package/dist/genexus-ide-ui/{p-545291ad.entry.js.map → p-7dc3a137.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-f186adfd.entry.js → p-85639fa5.entry.js} +100 -22
- package/dist/genexus-ide-ui/p-85639fa5.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-30365c44.entry.js → p-a3e07b86.entry.js} +6 -7
- package/dist/genexus-ide-ui/p-a3e07b86.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-9c6c5a61.entry.js → p-a592930e.entry.js} +37 -32
- package/dist/genexus-ide-ui/p-a592930e.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-b0e539fe.entry.js +41 -0
- package/dist/genexus-ide-ui/p-b0e539fe.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-a439149b.entry.js → p-bff2603a.entry.js} +8 -3
- package/dist/genexus-ide-ui/p-bff2603a.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-050bc199.entry.js → p-e0924e3f.entry.js} +96 -6
- package/dist/genexus-ide-ui/p-e0924e3f.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-58cad79d.entry.js → p-e240361a.entry.js} +58 -68
- package/dist/genexus-ide-ui/p-e240361a.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-e585f550.entry.js → p-e3925761.entry.js} +4 -5
- package/dist/genexus-ide-ui/{p-e585f550.entry.js.map → p-e3925761.entry.js.map} +1 -1
- package/dist/node_modules/@genexus/gemini/dist/collection/components/card/card.css +13 -1
- package/dist/node_modules/@genexus/gemini/dist/collection/components/pills/pill.css +16 -51
- package/dist/node_modules/@genexus/gemini/dist/collection/components/pills/pills.css +1 -8
- package/dist/node_modules/@genexus/gemini/dist/collection/components/tab/tab.css +7 -0
- package/dist/node_modules/@genexus/gemini/dist/collection/components/tab-bar/tab-bar.css +18 -0
- package/dist/node_modules/@genexus/gemini/dist/collection/components/tab-button/tab-button.css +17 -0
- package/dist/node_modules/@genexus/gemini/dist/collection/components/tabs/tabs.css +64 -13
- package/dist/node_modules/@genexus/gemini/dist/collection/components/top-state-bar/gxg-top-state-bar.css +120 -43
- package/dist/node_modules/@genexus/gemini/dist/collection/components/window-v2/window.css +3 -0
- package/dist/types/components/_helpers/empty-state/gx-ide-empty-state.d.ts +34 -0
- package/dist/types/components/import-from-design/import-from-design.d.ts +1 -3
- package/dist/types/components.d.ts +61 -0
- package/package.json +3 -3
- package/dist/cjs/gx-ide-recent-news.cjs.entry.js.map +0 -1
- package/dist/cjs/reposition-scroll-86d8fac5.js +0 -33
- package/dist/cjs/reposition-scroll-86d8fac5.js.map +0 -1
- package/dist/components/reposition-scroll.js +0 -31
- package/dist/components/reposition-scroll.js.map +0 -1
- package/dist/esm/gx-ide-recent-news.entry.js.map +0 -1
- package/dist/esm/reposition-scroll-cfff7017.js +0 -31
- package/dist/esm/reposition-scroll-cfff7017.js.map +0 -1
- package/dist/genexus-ide-ui/p-050bc199.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-30365c44.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-3e87257c.entry.js +0 -41
- package/dist/genexus-ide-ui/p-3e87257c.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-58cad79d.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-5ca84a03.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-9c6c5a61.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-a439149b.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-b8fc93f4.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-efa273d7.js +0 -27
- package/dist/genexus-ide-ui/p-efa273d7.js.map +0 -1
- package/dist/genexus-ide-ui/p-f186adfd.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-f5034221.entry.js +0 -258
- package/dist/genexus-ide-ui/p-f5034221.entry.js.map +0 -1
|
@@ -357,6 +357,13 @@ FORM ELEMENTS
|
|
|
357
357
|
:host .container::-webkit-scrollbar-corner {
|
|
358
358
|
background: rgba(0, 0, 0, 0);
|
|
359
359
|
}
|
|
360
|
+
:host .container--reduced {
|
|
361
|
+
font-size: var(--gxg-tab-font-size--reduced);
|
|
362
|
+
padding-block-start: var(--gxg-tab-vertical-padding--reduced);
|
|
363
|
+
padding-inline-end: var(--gxg-tab-horizontal-padding--reduced);
|
|
364
|
+
padding-block-end: var(--gxg-tab-vertical-padding--reduced);
|
|
365
|
+
padding-inline-start: var(--gxg-tab-horizontal-padding--reduced);
|
|
366
|
+
}
|
|
360
367
|
|
|
361
368
|
:host(.not-selected) {
|
|
362
369
|
display: none;
|
|
@@ -382,6 +382,24 @@ FORM ELEMENTS
|
|
|
382
382
|
width: 0;
|
|
383
383
|
}
|
|
384
384
|
|
|
385
|
+
/*Stacked*/
|
|
386
|
+
:host(.gxg-tab-bar--left-stacked),
|
|
387
|
+
:host(.gxg-tab-bar--right-stacked) {
|
|
388
|
+
height: 100%;
|
|
389
|
+
}
|
|
390
|
+
:host(.gxg-tab-bar--left-stacked) .tab-bar,
|
|
391
|
+
:host(.gxg-tab-bar--right-stacked) .tab-bar {
|
|
392
|
+
flex-direction: column;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
:host(.gxg-tab-bar--left-stacked) {
|
|
396
|
+
border-inline-end: var(--ds-border-common-styles);
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
:host(.gxg-tab-bar--right-stacked) {
|
|
400
|
+
border-inline-start: var(--ds-border-common-styles);
|
|
401
|
+
}
|
|
402
|
+
|
|
385
403
|
/*Scrollable*/
|
|
386
404
|
:host([scrollable]) .nav {
|
|
387
405
|
width: 100%;
|
package/dist/node_modules/@genexus/gemini/dist/collection/components/tab-button/tab-button.css
CHANGED
|
@@ -344,6 +344,7 @@ FORM ELEMENTS
|
|
|
344
344
|
-moz-box-shadow: none;
|
|
345
345
|
box-shadow: none;
|
|
346
346
|
background-color: transparent;
|
|
347
|
+
/*stacked style*/
|
|
347
348
|
}
|
|
348
349
|
:host .tab-button:focus-visible {
|
|
349
350
|
outline: var(--ds-focus-border-width) solid var(--ds-border-color-control--focused);
|
|
@@ -404,10 +405,26 @@ FORM ELEMENTS
|
|
|
404
405
|
:host .tab-button gxg-icon {
|
|
405
406
|
--gxg-icon-color: var(--gxg-tab-button-icon-color);
|
|
406
407
|
}
|
|
408
|
+
:host .tab-button--reduced {
|
|
409
|
+
padding-inline-end: var(--gxg-tab-button-horizontal-padding--reduced);
|
|
410
|
+
padding-inline-start: var(--gxg-tab-button-horizontal-padding--reduced);
|
|
411
|
+
font-size: var(--gxg-tab-button-font-size--reduced);
|
|
412
|
+
height: var(--gxg-tab-button-height--reduced);
|
|
413
|
+
}
|
|
414
|
+
:host .tab-button--stacked-style {
|
|
415
|
+
justify-content: flex-start;
|
|
416
|
+
}
|
|
417
|
+
:host .tab-button--stacked-style.tab-button--text-icon {
|
|
418
|
+
padding-inline-start: var(--gxg-tab-button-horizontal-padding--stacked);
|
|
419
|
+
}
|
|
407
420
|
:host .tab-button__text {
|
|
408
421
|
display: inline-block;
|
|
409
422
|
}
|
|
410
423
|
|
|
424
|
+
:host(.stacked) {
|
|
425
|
+
width: 100%;
|
|
426
|
+
}
|
|
427
|
+
|
|
411
428
|
:host([slot=tab-menu]) .tab-button {
|
|
412
429
|
padding-left: 0;
|
|
413
430
|
padding-right: 0;
|
|
@@ -344,26 +344,77 @@ FORM ELEMENTS
|
|
|
344
344
|
overflow-y: auto;
|
|
345
345
|
}
|
|
346
346
|
|
|
347
|
-
:host([position=left]) .
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
position: absolute;
|
|
351
|
-
z-index: 10;
|
|
347
|
+
:host([position=left-rotated]) .main-container,
|
|
348
|
+
:host([position=right-rotated]) .main-container {
|
|
349
|
+
flex-direction: row;
|
|
352
350
|
}
|
|
353
|
-
:host([position=left]) .
|
|
351
|
+
:host([position=left-rotated]) .tab-bar-container,
|
|
352
|
+
:host([position=right-rotated]) .tab-bar-container {
|
|
354
353
|
height: 100%;
|
|
355
|
-
|
|
356
|
-
|
|
354
|
+
overflow: auto;
|
|
355
|
+
width: 40px;
|
|
356
|
+
position: relative;
|
|
357
|
+
/* Track */
|
|
358
|
+
/* Handle */
|
|
359
|
+
/* Handle on hover */
|
|
357
360
|
}
|
|
358
|
-
|
|
359
|
-
:host([position=right]) .tab-bar-container {
|
|
361
|
+
:host([position=left-rotated]) .tab-bar-container::-webkit-scrollbar,
|
|
362
|
+
:host([position=right-rotated]) .tab-bar-container::-webkit-scrollbar {
|
|
363
|
+
width: var(--gxg-scrollbar-width);
|
|
364
|
+
height: var(--gxg-scrollbar-width);
|
|
365
|
+
}
|
|
366
|
+
:host([position=left-rotated]) .tab-bar-container::-webkit-scrollbar-track,
|
|
367
|
+
:host([position=right-rotated]) .tab-bar-container::-webkit-scrollbar-track {
|
|
368
|
+
background-color: var(--gxg-scrollbar-track-background);
|
|
369
|
+
border-radius: var(--gxg-scrollbar-track-border-radius);
|
|
370
|
+
}
|
|
371
|
+
:host([position=left-rotated]) .tab-bar-container::-webkit-scrollbar-thumb,
|
|
372
|
+
:host([position=right-rotated]) .tab-bar-container::-webkit-scrollbar-thumb {
|
|
373
|
+
background-color: var(--gxg-scrollbar-track-thumb-background);
|
|
374
|
+
border-radius: var(--gxg-scrollbar-track-thumb-radius);
|
|
375
|
+
}
|
|
376
|
+
:host([position=left-rotated]) .tab-bar-container::-webkit-scrollbar-thumb:hover,
|
|
377
|
+
:host([position=right-rotated]) .tab-bar-container::-webkit-scrollbar-thumb:hover {
|
|
378
|
+
background-color: var(--gxg-scrollbar-track-thumb-hover-background);
|
|
379
|
+
}
|
|
380
|
+
:host([position=left-rotated]) .tab-bar-container::-webkit-scrollbar-corner,
|
|
381
|
+
:host([position=right-rotated]) .tab-bar-container::-webkit-scrollbar-corner {
|
|
382
|
+
background: rgba(0, 0, 0, 0);
|
|
383
|
+
}
|
|
384
|
+
:host([position=left-rotated]) ::slotted(gxg-tab-bar),
|
|
385
|
+
:host([position=right-rotated]) ::slotted(gxg-tab-bar) {
|
|
360
386
|
transform: rotate(-90deg) translate(-100%, 0);
|
|
361
387
|
transform-origin: left top;
|
|
362
388
|
position: absolute;
|
|
363
389
|
z-index: 10;
|
|
364
|
-
left: calc(100% - 32px);
|
|
365
390
|
}
|
|
366
|
-
:host([position=
|
|
367
|
-
|
|
391
|
+
:host([position=left-rotated]) ::slotted(gxg-tab),
|
|
392
|
+
:host([position=right-rotated]) ::slotted(gxg-tab) {
|
|
393
|
+
border-left-width: var(--gxg-tabs-border-width);
|
|
394
|
+
border-left-style: solid;
|
|
395
|
+
border-left-color: var(--gxg-tabs-border-color);
|
|
396
|
+
}
|
|
397
|
+
:host([position=left-rotated]) .tabs-container,
|
|
398
|
+
:host([position=right-rotated]) .tabs-container {
|
|
368
399
|
width: calc(100% - 32px);
|
|
400
|
+
}
|
|
401
|
+
:host([position=left-rotated]) .main-container {
|
|
402
|
+
flex-direction: row;
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
:host([position=right-rotated]) .main-container {
|
|
406
|
+
flex-direction: row-reverse;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
:host([position=left-stacked]) .main-container,
|
|
410
|
+
:host([position=right-stacked]) .main-container {
|
|
411
|
+
flex-direction: row;
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
:host([position=left-stacked]) .main-container {
|
|
415
|
+
flex-direction: row;
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
:host([position=right-stacked]) .main-container {
|
|
419
|
+
flex-direction: row-reverse;
|
|
369
420
|
}
|
|
@@ -13,57 +13,118 @@
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
.top-state-bar {
|
|
16
|
+
position: relative;
|
|
17
|
+
border-radius: var(--mer-border__width--lg);
|
|
18
|
+
list-style: var(--mer-font__size--xxs);
|
|
19
|
+
display: flex;
|
|
20
|
+
opacity: 0;
|
|
21
|
+
transition: 150ms opacity;
|
|
16
22
|
/*states*/
|
|
17
|
-
|
|
23
|
+
}
|
|
24
|
+
.top-state-bar:before {
|
|
25
|
+
content: "";
|
|
26
|
+
width: 100%;
|
|
27
|
+
height: 100%;
|
|
28
|
+
position: absolute;
|
|
29
|
+
background-color: var(--mer-color__elevation--04);
|
|
30
|
+
z-index: -1;
|
|
31
|
+
}
|
|
32
|
+
.top-state-bar:after {
|
|
33
|
+
content: "";
|
|
34
|
+
left: var(--mer-border__width--sm);
|
|
35
|
+
top: var(--mer-border__width--sm);
|
|
36
|
+
width: calc(100% - var(--mer-border__width--sm) * 2);
|
|
37
|
+
height: calc(100% - var(--mer-border__width--sm) * 2);
|
|
38
|
+
position: absolute;
|
|
39
|
+
background-color: var(--mer-color__surface);
|
|
40
|
+
z-index: 0;
|
|
41
|
+
border-radius: var(--mer-border__width--lg);
|
|
42
|
+
}
|
|
43
|
+
.top-state-bar > * {
|
|
44
|
+
position: relative;
|
|
45
|
+
z-index: 1;
|
|
18
46
|
}
|
|
19
47
|
.top-state-bar__wrapper {
|
|
20
|
-
|
|
48
|
+
flex: 1;
|
|
21
49
|
display: flex;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
50
|
+
flex-direction: column;
|
|
51
|
+
gap: var(--mer-spacing--xs);
|
|
52
|
+
padding: var(--mer-spacing--sm) var(--mer-spacing--sm);
|
|
25
53
|
}
|
|
26
54
|
.top-state-bar__caption {
|
|
27
|
-
opacity: 0;
|
|
28
|
-
transition: 150ms opacity;
|
|
29
55
|
color: var(--mer-text__on-message);
|
|
30
56
|
font-family: var(--ds-base-font-family-primary);
|
|
31
|
-
font-size: var(--mer-font__size--
|
|
32
|
-
|
|
57
|
+
font-size: var(--mer-font__size--xxs);
|
|
58
|
+
line-height: var(--mer-font__size--xxs);
|
|
59
|
+
font-weight: var(--mer-font__weight--regular);
|
|
60
|
+
display: flex;
|
|
61
|
+
align-items: baseline;
|
|
62
|
+
font-style: italic;
|
|
33
63
|
}
|
|
34
|
-
.top-state-
|
|
35
|
-
|
|
64
|
+
.top-state-bar__progress-wrapper {
|
|
65
|
+
height: var(--mer-spacing--xxs);
|
|
66
|
+
background-color: var(--mer-color__elevation--04);
|
|
36
67
|
}
|
|
37
|
-
.top-state-bar__close {
|
|
38
|
-
opacity: 0;
|
|
39
|
-
transition: 200ms opacity;
|
|
68
|
+
.top-state-bar__close-wrapper {
|
|
40
69
|
cursor: pointer;
|
|
70
|
+
border-inline-start: 1px solid var(--mer-color__elevation--04);
|
|
71
|
+
display: flex;
|
|
72
|
+
align-items: center;
|
|
73
|
+
transition: 200ms background-color;
|
|
41
74
|
}
|
|
42
|
-
.top-state-bar__close:hover {
|
|
75
|
+
.top-state-bar__close-wrapper:hover .top-state-bar__close {
|
|
43
76
|
opacity: 0.75;
|
|
44
77
|
}
|
|
45
|
-
.top-state-bar__close
|
|
46
|
-
opacity:
|
|
78
|
+
.top-state-bar__close-wrapper:active .top-state-bar__close {
|
|
79
|
+
opacity: 0.5;
|
|
47
80
|
}
|
|
48
|
-
.top-state-bar--accent .
|
|
81
|
+
.top-state-bar--accent .progress-bar {
|
|
49
82
|
background-color: var(--mer-accent__primary);
|
|
50
|
-
color: var(--mer-text__on-primary);
|
|
51
83
|
}
|
|
52
|
-
.top-state-bar--
|
|
84
|
+
.top-state-bar--accent .top-state-bar__caption {
|
|
85
|
+
color: var(--mer-accent__primary);
|
|
86
|
+
}
|
|
87
|
+
.top-state-bar--success .progress-bar {
|
|
53
88
|
background-color: var(--mer-color__message-green--100);
|
|
54
89
|
}
|
|
55
|
-
.top-state-bar--
|
|
90
|
+
.top-state-bar--success .top-state-bar__caption {
|
|
91
|
+
color: var(--mer-color__message-green--100);
|
|
92
|
+
}
|
|
93
|
+
.top-state-bar--warning .progress-bar {
|
|
56
94
|
background-color: var(--mer-color__message-yellow--100);
|
|
57
95
|
}
|
|
58
|
-
.top-state-bar--
|
|
96
|
+
.top-state-bar--warning .top-state-bar__caption {
|
|
97
|
+
color: var(--mer-color__message-yellow--100);
|
|
98
|
+
}
|
|
99
|
+
.top-state-bar--error .progress-bar {
|
|
59
100
|
background-color: var(--mer-color__message-red--100);
|
|
60
101
|
}
|
|
61
|
-
.top-state-bar--
|
|
102
|
+
.top-state-bar--error .top-state-bar__caption {
|
|
103
|
+
color: var(--mer-color__message-red--100);
|
|
104
|
+
}
|
|
105
|
+
.top-state-bar--in-progress:before {
|
|
106
|
+
height: 0;
|
|
107
|
+
width: 120%;
|
|
108
|
+
padding-top: 60%;
|
|
109
|
+
padding-bottom: 60%;
|
|
110
|
+
background: linear-gradient(90deg, #5ba7ff 0%, #3fa89b 100%);
|
|
111
|
+
top: 50%;
|
|
112
|
+
left: 50%;
|
|
113
|
+
transform: translate(-50%, -50%);
|
|
114
|
+
-webkit-animation: inProgressBackgroundColor 1s linear infinite;
|
|
115
|
+
animation: inProgressBackgroundColor 1s linear infinite;
|
|
116
|
+
}
|
|
117
|
+
.top-state-bar--in-progress .top-state-bar__close-wrapper {
|
|
118
|
+
border-inline-start-color: #3fa89b;
|
|
119
|
+
-webkit-animation: inProgressBorderColor 1s linear infinite;
|
|
120
|
+
animation: inProgressBorderColor 1s linear infinite;
|
|
121
|
+
}
|
|
122
|
+
.top-state-bar--in-progress .progress-bar {
|
|
62
123
|
position: relative;
|
|
63
124
|
overflow: hidden;
|
|
64
125
|
z-index: 1;
|
|
65
126
|
}
|
|
66
|
-
.top-state-bar--in-progress .
|
|
127
|
+
.top-state-bar--in-progress .progress-bar:after {
|
|
67
128
|
content: "";
|
|
68
129
|
position: absolute;
|
|
69
130
|
z-index: 0;
|
|
@@ -71,27 +132,35 @@
|
|
|
71
132
|
height: 100%;
|
|
72
133
|
left: 0;
|
|
73
134
|
background: linear-gradient(90deg, #93f5eb 0%, #1aa3ff 33%, #93f5eb 66%, #1aa3ff 100%);
|
|
74
|
-
animation-name:
|
|
135
|
+
animation-name: inProgressBar;
|
|
75
136
|
animation-duration: 2s;
|
|
76
137
|
animation-iteration-count: infinite;
|
|
77
138
|
}
|
|
78
139
|
.top-state-bar--in-progress .top-state-bar__caption {
|
|
79
|
-
|
|
80
|
-
align-items: center;
|
|
81
|
-
flex-direction: column;
|
|
82
|
-
position: relative;
|
|
83
|
-
z-index: 2;
|
|
140
|
+
color: #3fa89b;
|
|
84
141
|
}
|
|
85
|
-
.top-state-bar--
|
|
86
|
-
|
|
87
|
-
text-align: center;
|
|
88
|
-
}
|
|
89
|
-
.top-state-bar--with-action .top-state-bar__wrapper {
|
|
90
|
-
padding-inline-end: var(--mer-spacing--xxs);
|
|
142
|
+
.top-state-bar--visible {
|
|
143
|
+
opacity: 1;
|
|
91
144
|
}
|
|
92
145
|
|
|
93
146
|
/*in progress animation*/
|
|
94
|
-
@-webkit-keyframes
|
|
147
|
+
@-webkit-keyframes inProgressBorderColor {
|
|
148
|
+
0% {
|
|
149
|
+
border-inline-start-color: #3fa89b;
|
|
150
|
+
}
|
|
151
|
+
100% {
|
|
152
|
+
border-inline-start-color: #5ba7ff;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
@-webkit-keyframes inProgressBackgroundColor {
|
|
156
|
+
0% {
|
|
157
|
+
transform: translate(-50%, -50%) rotate(0);
|
|
158
|
+
}
|
|
159
|
+
100% {
|
|
160
|
+
transform: translate(-50%, -50%) rotate(1turn);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
@-webkit-keyframes inProgressBar {
|
|
95
164
|
0% {
|
|
96
165
|
left: 0%;
|
|
97
166
|
}
|
|
@@ -99,7 +168,7 @@
|
|
|
99
168
|
left: -200%;
|
|
100
169
|
}
|
|
101
170
|
}
|
|
102
|
-
@-moz-keyframes
|
|
171
|
+
@-moz-keyframes inProgressBar {
|
|
103
172
|
0% {
|
|
104
173
|
left: 0%;
|
|
105
174
|
}
|
|
@@ -107,7 +176,7 @@
|
|
|
107
176
|
left: 200%;
|
|
108
177
|
}
|
|
109
178
|
}
|
|
110
|
-
@keyframes
|
|
179
|
+
@keyframes inProgressBar {
|
|
111
180
|
0% {
|
|
112
181
|
left: 0%;
|
|
113
182
|
}
|
|
@@ -116,11 +185,19 @@
|
|
|
116
185
|
}
|
|
117
186
|
}
|
|
118
187
|
.progress-bar {
|
|
188
|
+
display: block;
|
|
119
189
|
transition: all 200ms;
|
|
120
190
|
width: var(--top-bar-progress);
|
|
121
|
-
|
|
122
|
-
height:
|
|
191
|
+
border-radius: calc(var(--mer-spacing--xxs) / 2);
|
|
192
|
+
height: 100%;
|
|
123
193
|
}
|
|
124
|
-
|
|
125
|
-
|
|
194
|
+
|
|
195
|
+
:host([no-border]) .top-state-bar {
|
|
196
|
+
position: relative;
|
|
197
|
+
}
|
|
198
|
+
:host([no-border]) .top-state-bar:before, :host([no-border]) .top-state-bar:after {
|
|
199
|
+
display: none;
|
|
200
|
+
}
|
|
201
|
+
:host([no-border]) .top-state-bar__close-wrapper {
|
|
202
|
+
border-inline-start: none;
|
|
126
203
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export declare class GxIdeEmptyState {
|
|
2
|
+
private transitionSpeed;
|
|
3
|
+
el: HTMLGxIdeEmptyStateElement;
|
|
4
|
+
private primaryButtonEl;
|
|
5
|
+
private secondaryButtonEl;
|
|
6
|
+
/**
|
|
7
|
+
* The state icon
|
|
8
|
+
*/
|
|
9
|
+
readonly stateIcon?: string;
|
|
10
|
+
/**
|
|
11
|
+
* The state title
|
|
12
|
+
*/
|
|
13
|
+
readonly stateTitle: string;
|
|
14
|
+
/**
|
|
15
|
+
* The state description
|
|
16
|
+
*/
|
|
17
|
+
readonly stateDescription?: string;
|
|
18
|
+
/**
|
|
19
|
+
* The button primary label
|
|
20
|
+
*/
|
|
21
|
+
readonly primaryButtonLabel?: string;
|
|
22
|
+
/**
|
|
23
|
+
* The button secondary label
|
|
24
|
+
*/
|
|
25
|
+
readonly secondaryButtonLabel?: string;
|
|
26
|
+
/**
|
|
27
|
+
* If true, it will display the content
|
|
28
|
+
*/
|
|
29
|
+
display: boolean;
|
|
30
|
+
watchDisplayHandler(display: boolean): void;
|
|
31
|
+
componentWillLoad(): void;
|
|
32
|
+
componentDidLoad(): void;
|
|
33
|
+
render(): any;
|
|
34
|
+
}
|
|
@@ -30,7 +30,6 @@ export declare class GxIdeImportFromDesign {
|
|
|
30
30
|
private tokensFactoryRenderEl;
|
|
31
31
|
private stylesFactoryRenderEl;
|
|
32
32
|
private treeDataEl;
|
|
33
|
-
private tabsEl;
|
|
34
33
|
/**
|
|
35
34
|
* The design data loaded from file
|
|
36
35
|
*/
|
|
@@ -75,8 +74,7 @@ export declare class GxIdeImportFromDesign {
|
|
|
75
74
|
/**
|
|
76
75
|
* Used to trigger a re-render after an item has been selected on renderDesignTree, in order to set the first tab as the active tab (setFirstActiveTab()), since calling this method inside objectsTreeSelectedItemsChangedHandler does not always work without a setTimeOut.
|
|
77
76
|
*/
|
|
78
|
-
|
|
79
|
-
watchCounterHandler(): void;
|
|
77
|
+
updateTabsActiveTab: boolean;
|
|
80
78
|
/**
|
|
81
79
|
* If true, images will be fitted in the container
|
|
82
80
|
*/
|
|
@@ -460,6 +460,32 @@ export namespace Components {
|
|
|
460
460
|
*/
|
|
461
461
|
"value": string;
|
|
462
462
|
}
|
|
463
|
+
interface GxIdeEmptyState {
|
|
464
|
+
/**
|
|
465
|
+
* If true, it will display the content
|
|
466
|
+
*/
|
|
467
|
+
"display": boolean;
|
|
468
|
+
/**
|
|
469
|
+
* The button primary label
|
|
470
|
+
*/
|
|
471
|
+
"primaryButtonLabel"?: string;
|
|
472
|
+
/**
|
|
473
|
+
* The button secondary label
|
|
474
|
+
*/
|
|
475
|
+
"secondaryButtonLabel"?: string;
|
|
476
|
+
/**
|
|
477
|
+
* The state description
|
|
478
|
+
*/
|
|
479
|
+
"stateDescription"?: string;
|
|
480
|
+
/**
|
|
481
|
+
* The state icon
|
|
482
|
+
*/
|
|
483
|
+
"stateIcon"?: string;
|
|
484
|
+
/**
|
|
485
|
+
* The state title
|
|
486
|
+
*/
|
|
487
|
+
"stateTitle": string;
|
|
488
|
+
}
|
|
463
489
|
interface GxIdeEntitySelector {
|
|
464
490
|
/**
|
|
465
491
|
* This property provides the user a way to define custom aria-label descriptions.
|
|
@@ -1751,6 +1777,12 @@ declare global {
|
|
|
1751
1777
|
prototype: HTMLGxIdeDirectorySelectorElement;
|
|
1752
1778
|
new (): HTMLGxIdeDirectorySelectorElement;
|
|
1753
1779
|
};
|
|
1780
|
+
interface HTMLGxIdeEmptyStateElement extends Components.GxIdeEmptyState, HTMLStencilElement {
|
|
1781
|
+
}
|
|
1782
|
+
var HTMLGxIdeEmptyStateElement: {
|
|
1783
|
+
prototype: HTMLGxIdeEmptyStateElement;
|
|
1784
|
+
new (): HTMLGxIdeEmptyStateElement;
|
|
1785
|
+
};
|
|
1754
1786
|
interface HTMLGxIdeEntitySelectorElementEventMap {
|
|
1755
1787
|
"valueChanged": EntityData;
|
|
1756
1788
|
}
|
|
@@ -2173,6 +2205,7 @@ declare global {
|
|
|
2173
2205
|
"gx-ide-dashboard-home": HTMLGxIdeDashboardHomeElement;
|
|
2174
2206
|
"gx-ide-data-selector": HTMLGxIdeDataSelectorElement;
|
|
2175
2207
|
"gx-ide-directory-selector": HTMLGxIdeDirectorySelectorElement;
|
|
2208
|
+
"gx-ide-empty-state": HTMLGxIdeEmptyStateElement;
|
|
2176
2209
|
"gx-ide-entity-selector": HTMLGxIdeEntitySelectorElement;
|
|
2177
2210
|
"gx-ide-file-selector": HTMLGxIdeFileSelectorElement;
|
|
2178
2211
|
"gx-ide-import-from-design": HTMLGxIdeImportFromDesignElement;
|
|
@@ -2596,6 +2629,32 @@ declare namespace LocalJSX {
|
|
|
2596
2629
|
*/
|
|
2597
2630
|
"value"?: string;
|
|
2598
2631
|
}
|
|
2632
|
+
interface GxIdeEmptyState {
|
|
2633
|
+
/**
|
|
2634
|
+
* If true, it will display the content
|
|
2635
|
+
*/
|
|
2636
|
+
"display"?: boolean;
|
|
2637
|
+
/**
|
|
2638
|
+
* The button primary label
|
|
2639
|
+
*/
|
|
2640
|
+
"primaryButtonLabel"?: string;
|
|
2641
|
+
/**
|
|
2642
|
+
* The button secondary label
|
|
2643
|
+
*/
|
|
2644
|
+
"secondaryButtonLabel"?: string;
|
|
2645
|
+
/**
|
|
2646
|
+
* The state description
|
|
2647
|
+
*/
|
|
2648
|
+
"stateDescription"?: string;
|
|
2649
|
+
/**
|
|
2650
|
+
* The state icon
|
|
2651
|
+
*/
|
|
2652
|
+
"stateIcon"?: string;
|
|
2653
|
+
/**
|
|
2654
|
+
* The state title
|
|
2655
|
+
*/
|
|
2656
|
+
"stateTitle": string;
|
|
2657
|
+
}
|
|
2599
2658
|
interface GxIdeEntitySelector {
|
|
2600
2659
|
/**
|
|
2601
2660
|
* This property provides the user a way to define custom aria-label descriptions.
|
|
@@ -3750,6 +3809,7 @@ declare namespace LocalJSX {
|
|
|
3750
3809
|
"gx-ide-dashboard-home": GxIdeDashboardHome;
|
|
3751
3810
|
"gx-ide-data-selector": GxIdeDataSelector;
|
|
3752
3811
|
"gx-ide-directory-selector": GxIdeDirectorySelector;
|
|
3812
|
+
"gx-ide-empty-state": GxIdeEmptyState;
|
|
3753
3813
|
"gx-ide-entity-selector": GxIdeEntitySelector;
|
|
3754
3814
|
"gx-ide-file-selector": GxIdeFileSelector;
|
|
3755
3815
|
"gx-ide-import-from-design": GxIdeImportFromDesign;
|
|
@@ -3793,6 +3853,7 @@ declare module "@stencil/core" {
|
|
|
3793
3853
|
"gx-ide-dashboard-home": LocalJSX.GxIdeDashboardHome & JSXBase.HTMLAttributes<HTMLGxIdeDashboardHomeElement>;
|
|
3794
3854
|
"gx-ide-data-selector": LocalJSX.GxIdeDataSelector & JSXBase.HTMLAttributes<HTMLGxIdeDataSelectorElement>;
|
|
3795
3855
|
"gx-ide-directory-selector": LocalJSX.GxIdeDirectorySelector & JSXBase.HTMLAttributes<HTMLGxIdeDirectorySelectorElement>;
|
|
3856
|
+
"gx-ide-empty-state": LocalJSX.GxIdeEmptyState & JSXBase.HTMLAttributes<HTMLGxIdeEmptyStateElement>;
|
|
3796
3857
|
"gx-ide-entity-selector": LocalJSX.GxIdeEntitySelector & JSXBase.HTMLAttributes<HTMLGxIdeEntitySelectorElement>;
|
|
3797
3858
|
"gx-ide-file-selector": LocalJSX.GxIdeFileSelector & JSXBase.HTMLAttributes<HTMLGxIdeFileSelectorElement>;
|
|
3798
3859
|
"gx-ide-import-from-design": LocalJSX.GxIdeImportFromDesign & JSXBase.HTMLAttributes<HTMLGxIdeImportFromDesignElement>;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@genexus/genexus-ide-ui",
|
|
3
3
|
"license": "Apache-2.0",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.100",
|
|
5
5
|
"description": "GeneXus IDE UI components",
|
|
6
6
|
"main": "dist/index.cjs.js",
|
|
7
7
|
"module": "dist/index.js",
|
|
@@ -36,10 +36,10 @@
|
|
|
36
36
|
"@types/react": "^18.2.8"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
|
-
"@genexus/gemini": "*0.2.
|
|
39
|
+
"@genexus/gemini": "*0.2.108"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@genexus/gemini": "*0.2.
|
|
42
|
+
"@genexus/gemini": "*0.2.108",
|
|
43
43
|
"@stencil-community/eslint-plugin": "^0.6.0",
|
|
44
44
|
"@stencil/core": "~4.9.0",
|
|
45
45
|
"@stencil/sass": "~1.4.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"gx-ide-recent-news.entry.cjs.js","mappings":"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","names":["h","Locale","Host"],"sources":["src/components/start-page/recent-news.scss?tag=gx-ide-recent-news&encapsulation=shadow","src/components/start-page/recent-news.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n box-shadow: none;\n height: 100%;\n overflow: hidden;\n padding-bottom: 2px;\n box-sizing: border-box;\n}\n.news-container {\n display: flex;\n flex-direction: column;\n gap: var(--gx-ide-articles-gap);\n p:first-child {\n margin-top: 0;\n }\n p:last-child {\n margin-bottom: 0;\n }\n}\ngxg-card.section {\n height: 100% !important;\n overflow: auto;\n border-bottom: 2px solid var(--gray-00);\n}\ngxg-ide-loader::part(loader-wrapper) {\n border-radius: 8px;\n overflow: hidden;\n}\n.gxg-card-container {\n height: 100%;\n overflow: auto;\n}\n.gx-ide-message {\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n gap: var(--mer-spacing--sm);\n\n &--hidden {\n display: none;\n }\n}\ngx-ide-title {\n max-width: 250px;\n}\n.news-article {\n transition: 200ms opacity;\n opacity: 0;\n\n &.visible {\n opacity: 1;\n }\n}\n","/* STENCIL IMPORTS */\nimport { Component, Host, h, Prop, Element, State, Watch } from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { NewsData, GetNewsCallback, OpenNewsCallback } from \"./start-page\";\n\n@Component({\n tag: \"gx-ide-recent-news\",\n styleUrl: \"recent-news.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/recent-news\"]\n})\nexport class GxIdeRecentNews {\n /*\nINDEX:\n1.OWN PROPERTIES \n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE METHODS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeRecentNewsElement;\n private loaderEl!: HTMLGxgIdeLoaderElement;\n private newsContainerEl: HTMLDivElement;\n private newsRendered = false;\n private setTimeOutNewsDelay = 75;\n\n // 3.STATE() VARIABLES //\n\n /**\n * The list of news\n */\n @State() news: NewsData[] = [];\n @Watch(\"news\")\n watchNewsHandler() {\n this.displayNews();\n }\n\n /**\n * True if news couldn't be loaded\n */\n @State() newsLoadFailed = false;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * Callback invoked to load the news feed (right panel \"Recent News\").\n */\n @Prop() readonly getNewsCallback: GetNewsCallback;\n\n /**\n * Callback invoked to open a news article.\n */\n @Prop() readonly openNewsCallback: OpenNewsCallback;\n\n // 5.EVENTS (EMIT) //\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidLoad() {\n this.getNews();\n this.attachLoaderEvents();\n }\n\n componentDidRender() {\n this.evaluateNewsDisplay();\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private evaluateNewsDisplay = () => {\n if (\n !this.newsRendered &&\n this.news.length > 0 &&\n this.newsContainerEl !== undefined\n ) {\n this.displayNews();\n this.newsRendered = true;\n }\n };\n\n private displayNews = () => {\n if (this.newsContainerEl !== undefined) {\n const news = Array.from(\n this.newsContainerEl.querySelectorAll(\"gxg-card\")\n );\n news.forEach(news => {\n setTimeout(() => {\n news.classList.add(\"visible\");\n }, this.setTimeOutNewsDelay);\n this.setTimeOutNewsDelay += 75;\n });\n }\n };\n\n private attachLoaderEvents = () => {\n this.loaderEl.addEventListener(\"loaderFinished\", () => {\n if (this.news.length === 0) {\n this.newsLoadFailed = true;\n } else {\n this.newsLoadFailed = false;\n }\n });\n };\n\n private getNews = async () => {\n this.loaderEl.show = true;\n if (this.getNewsCallback) {\n const newsResult = await this.getNewsCallback();\n this.loaderEl.show = false;\n if (newsResult && newsResult.length > 0) {\n this.news = newsResult;\n this.newsLoadFailed = false;\n } else {\n this.newsLoadFailed = true;\n }\n }\n };\n\n private openNewsHandler = (newsId: string) => async () => {\n if (this.openNewsCallback) {\n await this.openNewsCallback(newsId);\n }\n };\n\n // 9.LOCAL METHODS -> RENDERS //\n\n private renderNews = (news: NewsData): HTMLGxgCardElement | null => {\n if (news.id && news.title) {\n return (\n <gxg-card\n id={news.id}\n key={news.id}\n cardType=\"article\"\n cardTitle={news.title}\n icon=\"gx-test/test-results\"\n iconColor=\"auto\"\n actionable\n onClick={this.openNewsHandler(news.id)}\n titleSemibold\n noHeaderBorder\n class=\"news-article\"\n >\n {news.body ? <p>{news.body}</p> : null}\n </gxg-card>\n );\n }\n return null;\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host>\n <gxg-card\n class=\"section\"\n cardType=\"section\"\n cardTitle={this._componentLocale.recentNews.title}\n >\n {this.news.length > 0 ? (\n <div\n class=\"news-container\"\n ref={el => (this.newsContainerEl = el as HTMLDivElement)}\n >\n {this.news?.map(singleNews => {\n return this.renderNews(singleNews);\n })}\n </div>\n ) : (\n <div\n class={{\n \"gx-ide-message\": true,\n \"gx-ide-message--hidden\": !this.newsLoadFailed\n }}\n >\n <gx-ide-title alignment=\"center\">\n {this._componentLocale.recentNews.newsNotFetched}\n </gx-ide-title>\n <gxg-button onClick={this.getNews}>\n {this._componentLocale.recentNews.tryAgainButtonLabel}\n </gxg-button>\n <gxg-text\n type=\"text-link\"\n href=\"https://www.genexus.com/en/news\"\n target=\"_blank\"\n >\n {this._componentLocale.recentNews.readThemOnline}\n </gxg-text>\n </div>\n )}\n </gxg-card>\n <gxg-ide-loader\n abortTime={8000}\n container={this.el}\n loaderTitle={this._componentLocale.loader.title}\n description=\"Hang on please\"\n ref={el => (this.loaderEl = el as HTMLGxgIdeLoaderElement)}\n ></gxg-ide-loader>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const types = require('./types-36efe32d.js');
|
|
4
|
-
|
|
5
|
-
const repositionScroll = (scollableElementRef, activeItem, direction) => {
|
|
6
|
-
const scrollableElement = scollableElementRef;
|
|
7
|
-
const hasVerticalScrollbar = scrollableElement?.scrollHeight > scrollableElement?.clientHeight;
|
|
8
|
-
if (hasVerticalScrollbar && activeItem) {
|
|
9
|
-
const scrollableElementScrollTop = scrollableElement.scrollTop;
|
|
10
|
-
if (direction === types.KeyboardKeys.ARROW_UP) {
|
|
11
|
-
const scrollableElementTop = scrollableElement.getBoundingClientRect()
|
|
12
|
-
.top;
|
|
13
|
-
const selectedItemTop = activeItem.getBoundingClientRect().top;
|
|
14
|
-
if (selectedItemTop < scrollableElementTop) {
|
|
15
|
-
const offset = scrollableElementTop - selectedItemTop;
|
|
16
|
-
scrollableElement.scrollTo(0, scrollableElementScrollTop - offset);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
else if (direction === types.KeyboardKeys.ARROW_DOWN) {
|
|
20
|
-
const scrollableElementBottom = scrollableElement.getBoundingClientRect()
|
|
21
|
-
.bottom;
|
|
22
|
-
const selectedItemBottom = activeItem.getBoundingClientRect().bottom;
|
|
23
|
-
if (selectedItemBottom > scrollableElementBottom) {
|
|
24
|
-
const offset = selectedItemBottom - scrollableElementBottom;
|
|
25
|
-
scrollableElement.scrollTo(0, scrollableElementScrollTop + offset);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
exports.repositionScroll = repositionScroll;
|
|
32
|
-
|
|
33
|
-
//# sourceMappingURL=reposition-scroll-86d8fac5.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"reposition-scroll-86d8fac5.js","mappings":";;;;AACY,MAAC,gBAAgB,GAAG,CAAC,mBAAmB,EAAE,UAAU,EAAE,SAAS,KAAK;AAChF,IAAI,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAClD,IAAI,MAAM,oBAAoB,GAAG,iBAAiB,EAAE,YAAY,GAAG,iBAAiB,EAAE,YAAY,CAAC;AACnG,IAAI,IAAI,oBAAoB,IAAI,UAAU,EAAE;AAC5C,QAAQ,MAAM,0BAA0B,GAAG,iBAAiB,CAAC,SAAS,CAAC;AACvE,QAAQ,IAAI,SAAS,KAAKA,kBAAE,CAAC,QAAQ,EAAE;AACvC,YAAY,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,qBAAqB,EAAE;AAClF,iBAAiB,GAAG,CAAC;AACrB,YAAY,MAAM,eAAe,GAAG,UAAU,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC;AAC3E,YAAY,IAAI,eAAe,GAAG,oBAAoB,EAAE;AACxD,gBAAgB,MAAM,MAAM,GAAG,oBAAoB,GAAG,eAAe,CAAC;AACtE,gBAAgB,iBAAiB,CAAC,QAAQ,CAAC,CAAC,EAAE,0BAA0B,GAAG,MAAM,CAAC,CAAC;AACnF,aAAa;AACb,SAAS;AACT,aAAa,IAAI,SAAS,KAAKA,kBAAE,CAAC,UAAU,EAAE;AAC9C,YAAY,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,qBAAqB,EAAE;AACrF,iBAAiB,MAAM,CAAC;AACxB,YAAY,MAAM,kBAAkB,GAAG,UAAU,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;AACjF,YAAY,IAAI,kBAAkB,GAAG,uBAAuB,EAAE;AAC9D,gBAAgB,MAAM,MAAM,GAAG,kBAAkB,GAAG,uBAAuB,CAAC;AAC5E,gBAAgB,iBAAiB,CAAC,QAAQ,CAAC,CAAC,EAAE,0BAA0B,GAAG,MAAM,CAAC,CAAC;AACnF,aAAa;AACb,SAAS;AACT,KAAK;AACL;;;;","names":["KK"],"sources":["node_modules/@genexus/gemini/dist/collection/common/reposition-scroll.js"],"sourcesContent":["import { KeyboardKeys as KK } from \"./types\";\nexport const repositionScroll = (scollableElementRef, activeItem, direction) => {\n const scrollableElement = scollableElementRef;\n const hasVerticalScrollbar = scrollableElement?.scrollHeight > scrollableElement?.clientHeight;\n if (hasVerticalScrollbar && activeItem) {\n const scrollableElementScrollTop = scrollableElement.scrollTop;\n if (direction === KK.ARROW_UP) {\n const scrollableElementTop = scrollableElement.getBoundingClientRect()\n .top;\n const selectedItemTop = activeItem.getBoundingClientRect().top;\n if (selectedItemTop < scrollableElementTop) {\n const offset = scrollableElementTop - selectedItemTop;\n scrollableElement.scrollTo(0, scrollableElementScrollTop - offset);\n }\n }\n else if (direction === KK.ARROW_DOWN) {\n const scrollableElementBottom = scrollableElement.getBoundingClientRect()\n .bottom;\n const selectedItemBottom = activeItem.getBoundingClientRect().bottom;\n if (selectedItemBottom > scrollableElementBottom) {\n const offset = selectedItemBottom - scrollableElementBottom;\n scrollableElement.scrollTo(0, scrollableElementScrollTop + offset);\n }\n }\n }\n};\n//# sourceMappingURL=reposition-scroll.js.map\n"],"version":3}
|