Do not block opening rebase dialog on fetching recent changes

For the user case of rebasing on parent change, no interaction with the
change autocomplete is required.

Update the rebase dialog to instead show a spinner for loading the
recent changes.

Release-Notes: skip
Bug: Google b/454164071
Change-Id: Ie387a1d65462eacbc825247d2ecf221782f70a55
(cherry picked from commit 6fd8119869dbdc5bd735358f90a1dcb60dfa1032)
diff --git a/polygerrit-ui/app/elements/change/gr-confirm-rebase-dialog/gr-confirm-rebase-dialog.ts b/polygerrit-ui/app/elements/change/gr-confirm-rebase-dialog/gr-confirm-rebase-dialog.ts
index fd44c59..ab00533 100644
--- a/polygerrit-ui/app/elements/change/gr-confirm-rebase-dialog/gr-confirm-rebase-dialog.ts
+++ b/polygerrit-ui/app/elements/change/gr-confirm-rebase-dialog/gr-confirm-rebase-dialog.ts
@@ -35,6 +35,7 @@
 import '@material/web/radio/radio';
 import {MdRadio} from '@material/web/radio/radio';
 import {materialStyles} from '../../../styles/gr-material-styles';
+import {spinnerStyles} from '../../../styles/gr-spinner-styles';
 import '@material/web/checkbox/checkbox';
 
 export interface ConfirmRebaseEventDetail {
@@ -184,6 +185,7 @@
       formStyles,
       sharedStyles,
       materialStyles,
+      spinnerStyles,
       css`
         :host {
           display: block;
@@ -227,6 +229,17 @@
           margin-top: var(--spacing-xl);
           margin-bottom: var(--spacing-xl);
         }
+        .loadingSpin {
+          width: calc(var(--line-height-normal) - 2px);
+          height: calc(var(--line-height-normal) - 2px);
+          display: inline-block;
+          vertical-align: top;
+          position: relative;
+          top: 1px;
+        }
+        .zeroState {
+          color: var(--deemphasized-text-color);
+        }
         @media screen and (max-width: 50em) {
           #confirmDialog {
             height: 90vh;
@@ -246,22 +259,16 @@
         @cancel=${this.handleCancelTap}
       >
         <div class="header" slot="header">Confirm rebase</div>
-        <div class="main" slot="main">
-          ${when(
-            this.loading,
-            () => html`<div>Loading...</div>`,
-            () => this.renderRebaseDialog()
-          )}
-        </div>
+        <div class="main" slot="main">${this.renderRebaseDialog()}</div>
       </gr-dialog>
     `;
   }
 
   private renderRebaseDialog() {
-    return html`<div
+    return html` <div
         id="rebaseOnParent"
         class="rebaseOption loading"
-        ?hidden=${!this.displayParentOption() || this.loading}
+        ?hidden=${!this.displayParentOption()}
       >
         <md-radio
           id="rebaseOnParentInput"
@@ -335,6 +342,12 @@
         >
         </gr-change-autocomplete>
       </div>
+      ${when(
+        this.loading,
+        () =>
+          html`<span class="loadingSpin"></span
+            ><span class="zeroState"> loading recent changes</span>`
+      )}
       <div class="rebaseCheckbox">
         <div class="checkbox-container">
           <md-checkbox