HAWKULAR-499 First pass at an Angular Style Guide

This is a first pass at a best practices for Hawkular UI style guide. It was mainly copied from Todd Motto and altered for our use cases (like Typescript instead of javascript). I think it summarizes some very important Angular principles in one place.
With more people on the team authoring in Angular its is important to have this.

I realize this should be in asciidoc format. But most of this was copied from an existing MarkDown document. So for now...

@ppalaga Any reason why this would fail checkstyle with:
[WARNING] Unknown file extension: /home/travis/build/hawkular/hawkular/angular-style-guide.adoc

@mtho11 .adoc is indeed unknown to license plugin. It has not shown up so far because README.* pattern is ignored. angular-style-guide.adoc is probably the first non-README adoc file.
As a solution, (a) adding the whole *.adoc to excludes of license plugin in HK parent is probably better than (b) defining the license hearder style and adding licenses?


chore: [#3518] Remove public access modifier from botbuilder-dialogs-adaptive - Part 3

Addresses # 3518
#minor
Description
This PR removes the public access modifier from all constructors, methods and properties for the botbuilder-dialogs-adaptive folder.

Note: These changes do not include the Typescript Constructor Shorthands (link).

Specific Changes

Removes all public access modifiers from where it's declared under the botbuilder-dialogs-adaptive folder.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

65 of 65 (100.0%)  changed or added relevant lines in 35 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage remained the same at 84.485%

Files with Coverage Reduction
New Missed Lines
%

libraries/botbuilder-lg/src/templateExtensions.ts
1
84.48%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
19909

Relevant Lines:
22316

💛  - Coveralls

/promoted 4223


Lyrics and Queue button missing when Mojave mode is activated

I think this has something to do with the length of the window, currently, the 1040x600 size for the window will not show either.

https://github.com/yazninja/iTheme/issues/60


Release/0.9.5

Coverage remained the same at 22.424% when pulling 1f679ab9ce0e4c006b0da998bf706995ded1e3af on release/0.9.5 into 23ca30b6d2aef78472e32b9009b534d7bbfd6a70 on master.


Update libvirt image to 5.4.0

related to https://github.com/kubevirt/libvirt/pull/26
This PR is needed because we can't rebuild the image.
libvirt 5.0.0 packages are not longer exist under the virt repo.
Also the qemu pakcage that works with 5.0.0 don't exist any more.
This PR also installed the nftable package needed for ocp 4

What this PR does / why we need it:
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Part of the solution for https://github.com/kubevirt/kubevirt/issues/2400
Special notes for your reviewer:
Release note:

update libvirt base image to 5.4.0

This change is

@SchSeba You also need to update:

libvirt_libs and libvirt_devel targets under workspace
libvirt-shared-libs target under the root BUILD file
libvirt client-go version

@cynepco3hahue Thanks for the help can you please take another look?

I see one test that fails under all lanes
Configurations [rfe_id:140][crit:medium][vendor:cnv-qe@redhat.com][level:component]VirtualMachineInstance definition with EFI bootloader method [test_id:1668]should use EFI

Can you please check it locally?

Except for this one lgtm
@rmohr @fabiand Does it ok to advance upstream version of the libvirt? Because virt-preview repository does not have any more version 5.1 I think we do not have any choice :smiley:

/retest

Updating works for me.

We need to start working on the automatic mirroring of our dependencies in GCE.

We need to start working on the automatic mirroring of our dependencies in GCE.

@rmohr Do you have ideas about how can it be done?

@cynepco3hahue something like a postsubmit job which detects that new items were added to the WORKSPACE file. It then uploads the source, modified WORKSPACE by adding the mirror too and do a PR or push to the branch.

@cynepco3hahue we may also do it on the PR directly.

@cynepco3hahue I will check the EFI
/hold

the test pass locally without any issue
------------------------------
• [SLOW TEST:40.005 seconds]
Configurations
/home/sscheink/Documents/GolangProjects/src/kubevirt.io/kubevirt/tests/vmi_configuration_test.go:49
  [rfe_id:140][crit:medium][vendor:cnv-qe@redhat.com][level:component]VirtualMachineInstance definition
  /home/sscheink/Documents/GolangProjects/src/kubevirt.io/kubevirt/tests/vmi_configuration_test.go:139
    with EFI bootloader method
    /home/sscheink/Documents/GolangProjects/src/kubevirt.io/kubevirt/tests/vmi_configuration_test.go:401
      [test_id:1668]should use EFI
      /home/sscheink/Documents/GolangProjects/src/kubevirt.io/kubevirt/tests/vmi_configuration_test.go:403

I also try to run all the configuration lane and it's also pass
Ran 50 of 404 Specs in 1401.456 seconds
SUCCESS! -- 50 Passed | 0 Failed | 0 Pending | 354 Skipped
PASS | FOCUSED

/hold cancel

/retest

/retest

/retest

No needed any more
https://github.com/kubevirt/kubevirt/pull/2487


fix(peer-deps): support<EMAIL_ADDRESS>

Since<EMAIL_ADDRESS>is included in the current supported range (^10.0.0), I'm going to mark this PR as a bug fix instead of a feature.

All done.

Thanks!

👉 https://github.com/ikatyang/angular-estree-parser/releases/tag/v2.2.1


[Feature Request] Manually control ScrollArea scroll offset

I have the currently scenario:
https://user-images.githubusercontent.com/35241085/102737405-1714f600-4326-11eb-8cec-d0c3b1305856.mp4
that i want to control the scroll when moving the selected line keeping the focus at the active line.
This is what I got trying to achieve this:
Currently the offset state that controls the scroll position is not public. I tried creating an simple public fn to set the offset manually, but since we can't get the Id of the ScrollArea.source_id, we can't change the state. We only have access to the Id of the child_ui (Prepared.content_ui) inside the show() function.
Also since the Prepared state is passed from the begin() to the end(), we can't change it inside the add_contents(). We would need to get the state from the memory again in the end() if we changed it in the add_contents().
Maybe the way out is to pass the Id used to save the state in the return of the show:  ScrollArea.show() -> ScrollResponse<R> similar to the CollapsingResponse.
There is probably better solution for this

There are two scenarios we want to cover:
A) Setting the offset before layout
B) Setting the offset during or after layout
A) Setting the offset before layout
This could be solved with extending the ScrollArea builder like this:
ScrollArea::auto_sized().set_center_offset(500.0).show(...)
where set_center_offset(500) would scroll so that the center of the scroll area focuses 500 points down in the contents.
The downside with this is that one needs to anticipate how many points we want the offset to be ahead of time, which only works for trivial content (e.g. rows of single-line labels).
This should be fairly easy to implement
B) Setting the offset during or after layout
Dear ImGui has a very useful SetScrollHere() function that you can call from within the layout. This will signal the surrounding scroll area to scroll down to that line the next frame.
I think this could be accomplished by something like this:
egui::ScrollArea::auto_sized().show(ui, |ui| {
    for (i, line) in my_text.iter().enumerate() {
        if i == selected_line {
            ui.scroll_to_here();
        }
        ui.label(line);
    }
});

scroll_to_here would set a scroll_offset: Option<f32> in struct FrameState in Context. The scroll area logic would look for that after doing the layout, and store in its own State and use the next frame. The implementation becomes a bit hairy perhaps, but it would be very convenient for the user. In particular, one could call scroll_to_here on any ui deep down far away from any surrounding ScrollArea, and it would still work.
Other considerations
Sometimes one want to center on a particular line, sometimes make it the top of the layout. For centering one also needs to take into account the size of the widget one is centering on, so that we center on the center of the widget. Perhaps:
let response = ui.label(line);
if i == selected_line {
    response.scroll_to_me(Align::CENTER);
}

Having it part of Response would be neat, as it contains the Rect of the widget we want to center on.

I'm working on an implementation for this, got the basics from B) done, and works pretty good, this design is pretty good, gets the job done in my case in a few lines. Just don't know the best way to achieve:

In particular, one could call scroll_to_here on any ui deep down far away from any surrounding ScrollArea, and it would still work.

Currently you need to call scroll_to_here from the ScrollArea.content_ui. What do you think is the ideal way to do this?

Currently you need to call scroll_to_here from the ScrollArea.content_uiin the add_contents callback.

Why? Do you have a branch I can look at?

@emilk https://github.com/emilk/egui/pull/81