Merge "Add isFlowsEnabled API"
diff --git a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.ts b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.ts
index 3b19ca3..fc9b2f7 100644
--- a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.ts
+++ b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.ts
@@ -34,6 +34,10 @@
import {MdOutlinedTextField} from '@material/web/textfield/outlined-text-field';
import '@material/web/textfield/outlined-text-field';
import {materialStyles} from '../../../styles/gr-material-styles';
+import {repeat} from 'lit/directives/repeat.js';
+import '@material/web/select/outlined-select';
+import '@material/web/select/select-option';
+import {MdOutlinedSelect} from '@material/web/select/outlined-select';
const GLOBAL_NAME = 'GLOBAL_CAPABILITIES';
@@ -43,7 +47,7 @@
@customElement('gr-access-section')
export class GrAccessSection extends LitElement {
- @query('#permissionSelect') private permissionSelect?: HTMLSelectElement;
+ @query('#permissionSelect') private permissionSelect?: MdOutlinedSelect;
@property({type: String})
repo?: RepoName;
@@ -81,6 +85,8 @@
// private but used in test
@state() permissions?: PermissionArray<EditablePermissionInfo>;
+ @state() private selectedIndex = 0;
+
constructor() {
super();
this.addEventListener('access-saved', () => this.handleAccessSaved());
@@ -152,6 +158,8 @@
override render() {
if (!this.section) return;
+
+ const permissions = this.computePermissions();
return html`
<fieldset
id="section"
@@ -182,16 +190,33 @@
</div>
<!-- end header -->
<div class="sectionContent">
- ${this.permissions?.map((permission, index) =>
- this.renderPermission(permission, index)
+ ${repeat(
+ this.permissions ?? [],
+ perm => perm.id,
+ (permission, index) => this.renderPermission(permission, index)
)}
<div id="addPermission">
Add permission:
- <select id="permissionSelect">
- ${this.computePermissions().map(item =>
- this.renderPermissionOptions(item)
+ <md-outlined-select
+ id="permissionSelect"
+ value=${permissions[this.selectedIndex]?.value.id ??
+ permissions[0]?.value.id ??
+ ''}
+ @change=${(e: Event) => {
+ const sel = e.target as HTMLSelectElement;
+ this.setSelectionIndex(sel.value);
+ }}
+ >
+ ${repeat(
+ permissions,
+ item => item.value.id,
+ item => html`
+ <md-select-option value=${item.value.id}>
+ <div slot="headline">${item.value.name}</div>
+ </md-select-option>
+ `
)}
- </select>
+ </md-outlined-select>
<gr-button link id="addBtn" @click=${this.handleAddPermission}
>Add</gr-button
>
@@ -238,13 +263,6 @@
`;
}
- private renderPermissionOptions(item: {
- id: string;
- value: {name: string; id: string};
- }) {
- return html`<option value=${item.value.id}>${item.value.name}</option>`;
- }
-
override willUpdate(changedProperties: PropertyValues) {
if (changedProperties.has('section')) {
this.updateSection();
@@ -483,7 +501,9 @@
// private but used in test
handleAddPermission() {
assertIsDefined(this.permissionSelect, 'permissionSelect');
- const value = this.permissionSelect.value as GitRef;
+ const value = this.permissionSelect.getAttribute('value') as GitRef;
+ this.setSelectionIndex(value);
+
const permission: PermissionArrayItem<EditablePermissionInfo> = {
id: value,
value: {rules: {}, added: true},
@@ -525,6 +545,14 @@
this.permissions![index] = e.detail.value;
this.requestUpdate();
};
+
+ private setSelectionIndex(value: string) {
+ const currentIndex = this.computePermissions().findIndex(
+ p => p.value.id === value
+ );
+ const nextIndex = currentIndex % this.computePermissions().length;
+ this.selectedIndex = nextIndex;
+ }
}
declare global {
diff --git a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section_test.ts b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section_test.ts
index 0688be6..a4760d8 100644
--- a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section_test.ts
+++ b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section_test.ts
@@ -87,7 +87,8 @@
role="button"
tabindex="0"
>
- <gr-icon icon="edit" id="icon" small filled></gr-icon>
+ <gr-icon filled="" icon="edit" id="icon" small="">
+ </gr-icon>
</gr-button>
</div>
<md-outlined-text-field
@@ -111,46 +112,103 @@
<gr-permission> </gr-permission>
<div id="addPermission">
Add permission:
- <select id="permissionSelect">
- <option value="label-Code-Review">Label Code-Review</option>
- <option value="labelAs-Code-Review">
- Label Code-Review (On Behalf Of)
- </option>
- <option value="removeLabel-Code-Review">
- Remove Label Code-Review
- </option>
- <option value="abandon">Abandon</option>
- <option value="addPatchSet">Add Patch Set</option>
- <option value="create">Create Reference</option>
- <option value="createSignedTag">Create Signed Tag</option>
- <option value="createTag">Create Annotated Tag</option>
- <option value="delete">Delete Reference</option>
- <option value="deleteChanges">Delete Changes</option>
- <option value="deleteOwnChanges">Delete Own Changes</option>
- <option value="editHashtags">Edit Hashtags</option>
- <option value="editTopicName">Edit Topic Name</option>
- <option value="forgeAuthor">Forge Author Identity</option>
- <option value="forgeCommitter">
- Forge Committer Identity
- </option>
- <option value="forgeServerAsCommitter">
- Forge Server Identity
- </option>
- <option value="owner">Owner</option>
- <option value="push">Push</option>
- <option value="pushMerge">Push Merge Commit</option>
- <option value="rebase">Rebase</option>
- <option value="removeReviewer">Remove Reviewer</option>
- <option value="revert">Revert</option>
- <option value="submit">Submit</option>
- <option value="submitAs">Submit (On Behalf Of)</option>
- <option value="toggleWipState">
- Toggle Work In Progress State
- </option>
- <option value="viewPrivateChanges">
- View Private Changes
- </option>
- </select>
+ <md-outlined-select
+ id="permissionSelect"
+ value="label-Code-Review"
+ >
+ <md-select-option md-menu-item="" value="label-Code-Review">
+ <div slot="headline">Label Code-Review</div>
+ </md-select-option>
+ <md-select-option
+ md-menu-item=""
+ value="labelAs-Code-Review"
+ >
+ <div slot="headline">
+ Label Code-Review (On Behalf Of)
+ </div>
+ </md-select-option>
+ <md-select-option
+ md-menu-item=""
+ value="removeLabel-Code-Review"
+ >
+ <div slot="headline">Remove Label Code-Review</div>
+ </md-select-option>
+ <md-select-option md-menu-item="" value="abandon">
+ <div slot="headline">Abandon</div>
+ </md-select-option>
+ <md-select-option md-menu-item="" value="addPatchSet">
+ <div slot="headline">Add Patch Set</div>
+ </md-select-option>
+ <md-select-option md-menu-item="" value="create">
+ <div slot="headline">Create Reference</div>
+ </md-select-option>
+ <md-select-option md-menu-item="" value="createSignedTag">
+ <div slot="headline">Create Signed Tag</div>
+ </md-select-option>
+ <md-select-option md-menu-item="" value="createTag">
+ <div slot="headline">Create Annotated Tag</div>
+ </md-select-option>
+ <md-select-option md-menu-item="" value="delete">
+ <div slot="headline">Delete Reference</div>
+ </md-select-option>
+ <md-select-option md-menu-item="" value="deleteChanges">
+ <div slot="headline">Delete Changes</div>
+ </md-select-option>
+ <md-select-option md-menu-item="" value="deleteOwnChanges">
+ <div slot="headline">Delete Own Changes</div>
+ </md-select-option>
+ <md-select-option md-menu-item="" value="editHashtags">
+ <div slot="headline">Edit Hashtags</div>
+ </md-select-option>
+ <md-select-option md-menu-item="" value="editTopicName">
+ <div slot="headline">Edit Topic Name</div>
+ </md-select-option>
+ <md-select-option md-menu-item="" value="forgeAuthor">
+ <div slot="headline">Forge Author Identity</div>
+ </md-select-option>
+ <md-select-option md-menu-item="" value="forgeCommitter">
+ <div slot="headline">Forge Committer Identity</div>
+ </md-select-option>
+ <md-select-option
+ md-menu-item=""
+ value="forgeServerAsCommitter"
+ >
+ <div slot="headline">Forge Server Identity</div>
+ </md-select-option>
+ <md-select-option md-menu-item="" value="owner">
+ <div slot="headline">Owner</div>
+ </md-select-option>
+ <md-select-option md-menu-item="" value="push">
+ <div slot="headline">Push</div>
+ </md-select-option>
+ <md-select-option md-menu-item="" value="pushMerge">
+ <div slot="headline">Push Merge Commit</div>
+ </md-select-option>
+ <md-select-option md-menu-item="" value="rebase">
+ <div slot="headline">Rebase</div>
+ </md-select-option>
+ <md-select-option md-menu-item="" value="removeReviewer">
+ <div slot="headline">Remove Reviewer</div>
+ </md-select-option>
+ <md-select-option md-menu-item="" value="revert">
+ <div slot="headline">Revert</div>
+ </md-select-option>
+ <md-select-option md-menu-item="" value="submit">
+ <div slot="headline">Submit</div>
+ </md-select-option>
+ <md-select-option md-menu-item="" value="submitAs">
+ <div slot="headline">Submit (On Behalf Of)</div>
+ </md-select-option>
+ <md-select-option md-menu-item="" value="toggleWipState">
+ <div slot="headline">Toggle Work In Progress State</div>
+ </md-select-option>
+ <md-select-option
+ md-menu-item=""
+ value="viewPrivateChanges"
+ >
+ <div slot="headline">View Private Changes</div>
+ </md-select-option>
+ </md-outlined-select>
<gr-button
aria-disabled="false"
id="addBtn"
@@ -575,8 +633,18 @@
test('add permission', async () => {
element.editing = true;
- queryAndAssert<HTMLSelectElement>(element, '#permissionSelect').value =
- 'label-Code-Review';
+ let permissionSelect = queryAndAssert<HTMLSelectElement>(
+ element,
+ '#permissionSelect'
+ );
+ permissionSelect.value = 'label-Code-Review';
+ permissionSelect.dispatchEvent(
+ new CustomEvent('change', {
+ composed: true,
+ bubbles: true,
+ })
+ );
+ await element.updateComplete;
assert.equal(element.permissions!.length, 1);
assert.equal(Object.keys(element.section!.value.permissions).length, 1);
queryAndAssert<GrButton>(element, '#addBtn').click();
@@ -603,8 +671,18 @@
permission.value
);
- queryAndAssert<HTMLSelectElement>(element, '#permissionSelect').value =
- 'abandon';
+ permissionSelect = queryAndAssert<HTMLSelectElement>(
+ element,
+ '#permissionSelect'
+ );
+ permissionSelect.value = 'abandon';
+ permissionSelect.dispatchEvent(
+ new CustomEvent('change', {
+ composed: true,
+ bubbles: true,
+ })
+ );
+ await element.updateComplete;
queryAndAssert<GrButton>(element, '#addBtn').click();
await element.updateComplete;
diff --git a/polygerrit-ui/app/elements/admin/gr-create-change-dialog/gr-create-change-dialog.ts b/polygerrit-ui/app/elements/admin/gr-create-change-dialog/gr-create-change-dialog.ts
index 8bac5bd..d4849b2 100644
--- a/polygerrit-ui/app/elements/admin/gr-create-change-dialog/gr-create-change-dialog.ts
+++ b/polygerrit-ui/app/elements/admin/gr-create-change-dialog/gr-create-change-dialog.ts
@@ -8,7 +8,6 @@
import '../../../styles/shared-styles';
import '../../shared/gr-autocomplete/gr-autocomplete';
import '../../shared/gr-button/gr-button';
-import '../../shared/gr-select/gr-select';
import {navigationToken} from '../../core/gr-navigation/gr-navigation';
import {
BranchName,
diff --git a/polygerrit-ui/app/elements/admin/gr-create-pointer-dialog/gr-create-pointer-dialog.ts b/polygerrit-ui/app/elements/admin/gr-create-pointer-dialog/gr-create-pointer-dialog.ts
index 1e1a3ff..5572fad 100644
--- a/polygerrit-ui/app/elements/admin/gr-create-pointer-dialog/gr-create-pointer-dialog.ts
+++ b/polygerrit-ui/app/elements/admin/gr-create-pointer-dialog/gr-create-pointer-dialog.ts
@@ -11,11 +11,13 @@
import {sharedStyles} from '../../../styles/shared-styles';
import {css, html, LitElement, PropertyValues} from 'lit';
import {customElement, property, state} from 'lit/decorators.js';
-import {ValueChangedEvent} from '../../../types/events';
import {fire, fireAlert, fireReload} from '../../../utils/event-util';
import {RepoDetailView} from '../../../models/views/repo';
import '@material/web/textfield/outlined-text-field';
import {materialStyles} from '../../../styles/gr-material-styles';
+import '@material/web/select/outlined-select';
+import '@material/web/select/select-option';
+import {convertToString} from '../../../utils/string-util';
declare global {
interface HTMLElementTagNameMap {
@@ -95,17 +97,21 @@
</div>
<div>
<span class="value">
- <gr-select
+ <md-outlined-select
id="initialCommit"
- .bindValue=${this.createEmptyCommit}
- @bind-value-changed=${this
- .handleCreateEmptyCommitBindValueChanged}
+ value=${convertToString(this.createEmptyCommit ?? false)}
+ @change=${(e: Event) => {
+ const select = e.target as HTMLSelectElement;
+ this.createEmptyCommit = select.value === 'true';
+ }}
>
- <select>
- <option value="false">Existing Revision</option>
- <option value="true">Initial empty commit</option>
- </select>
- </gr-select>
+ <md-select-option value="false">
+ <div slot="headline">Existing Revision</div>
+ </md-select-option>
+ <md-select-option value="true">
+ <div slot="headline">Initial empty commit</div>
+ </md-select-option>
+ </md-outlined-select>
</span>
</div>
</section>
@@ -189,10 +195,4 @@
}
throw new Error(`Invalid itemDetail: ${this.itemDetail}`);
}
-
- private handleCreateEmptyCommitBindValueChanged(
- e: ValueChangedEvent<string>
- ) {
- this.createEmptyCommit = e.detail.value === 'true';
- }
}
diff --git a/polygerrit-ui/app/elements/admin/gr-create-pointer-dialog/gr-create-pointer-dialog_test.ts b/polygerrit-ui/app/elements/admin/gr-create-pointer-dialog/gr-create-pointer-dialog_test.ts
index fd47ec1..5da0369 100644
--- a/polygerrit-ui/app/elements/admin/gr-create-pointer-dialog/gr-create-pointer-dialog_test.ts
+++ b/polygerrit-ui/app/elements/admin/gr-create-pointer-dialog/gr-create-pointer-dialog_test.ts
@@ -51,12 +51,23 @@
</div>
<div>
<span class="value">
- <gr-select id="initialCommit">
- <select>
- <option value="false">Existing Revision</option>
- <option value="true">Initial empty commit</option>
- </select>
- </gr-select>
+ <md-outlined-select id="initialCommit" value="false">
+ <md-select-option
+ data-aria-selected="true"
+ md-menu-item=""
+ tabindex="0"
+ value="false"
+ >
+ <div slot="headline">Existing Revision</div>
+ </md-select-option>
+ <md-select-option
+ md-menu-item=""
+ tabindex="-1"
+ value="true"
+ >
+ <div slot="headline">Initial empty commit</div>
+ </md-select-option>
+ </md-outlined-select>
</span>
</div>
</section>
diff --git a/polygerrit-ui/app/elements/admin/gr-create-repo-dialog/gr-create-repo-dialog.ts b/polygerrit-ui/app/elements/admin/gr-create-repo-dialog/gr-create-repo-dialog.ts
index 7c0db38..e8d1c70 100644
--- a/polygerrit-ui/app/elements/admin/gr-create-repo-dialog/gr-create-repo-dialog.ts
+++ b/polygerrit-ui/app/elements/admin/gr-create-repo-dialog/gr-create-repo-dialog.ts
@@ -5,7 +5,6 @@
*/
import '../../shared/gr-autocomplete/gr-autocomplete';
import '../../shared/gr-button/gr-button';
-import '../../shared/gr-select/gr-select';
import {
BranchName,
GroupId,
diff --git a/polygerrit-ui/app/elements/change/gr-ai-prompt-dialog/gr-ai-prompt-dialog.ts b/polygerrit-ui/app/elements/change/gr-ai-prompt-dialog/gr-ai-prompt-dialog.ts
index 7470070..6f60850 100644
--- a/polygerrit-ui/app/elements/change/gr-ai-prompt-dialog/gr-ai-prompt-dialog.ts
+++ b/polygerrit-ui/app/elements/change/gr-ai-prompt-dialog/gr-ai-prompt-dialog.ts
@@ -21,10 +21,10 @@
import {HELP_ME_REVIEW_PROMPT, IMPROVE_COMMIT_MESSAGE} from './prompts';
import {when} from 'lit/directives/when.js';
import {copyToClipboard} from '../../../utils/common-util';
-import '@material/web/select/outlined-select.js';
-import '@material/web/select/select-option.js';
-import '@material/web/select/outlined-select.js';
-import '@material/web/select/select-option.js';
+import '@material/web/select/outlined-select';
+import '@material/web/select/select-option';
+import {materialStyles} from '../../../styles/gr-material-styles';
+import '@material/web/radio/radio';
const PROMPT_TEMPLATES = {
HELP_REVIEW: {
@@ -101,6 +101,7 @@
fontStyles,
sharedStyles,
modalStyles,
+ materialStyles,
css`
:host {
display: block;
@@ -148,7 +149,8 @@
.template-option {
display: flex;
align-items: center;
- gap: var(--spacing-s);
+ gap: var(--spacing-m);
+ margin-bottom: 0.5em;
}
textarea {
width: 550px;
@@ -195,8 +197,7 @@
${Object.entries(PROMPT_TEMPLATES).map(
([key, template]) => html`
<label class="template-option">
- <input
- type="radio"
+ <md-radio
name="template"
.value=${key}
?checked=${this.selectedTemplate === key}
@@ -205,7 +206,8 @@
this.selectedTemplate =
input.value as PromptTemplateId;
}}
- />
+ >
+ </md-radio>
${template.label}
</label>
`
diff --git a/polygerrit-ui/app/elements/change/gr-ai-prompt-dialog/gr-ai-prompt-dialog_test.ts b/polygerrit-ui/app/elements/change/gr-ai-prompt-dialog/gr-ai-prompt-dialog_test.ts
index 1d38f46..d55b48d 100644
--- a/polygerrit-ui/app/elements/change/gr-ai-prompt-dialog/gr-ai-prompt-dialog_test.ts
+++ b/polygerrit-ui/app/elements/change/gr-ai-prompt-dialog/gr-ai-prompt-dialog_test.ts
@@ -31,80 +31,105 @@
assert.shadowDom.equal(
element,
` <section>
- <h3 class="heading-3">Copy AI Prompt (experimental)</h3>
- </section>
- <section class="flexContainer">
- <div class="content">
- <div class="options-bar">
- <div class="template-selector">
- <div class="template-options">
- <label class="template-option">
- <input
- checked=""
- name="template"
- type="radio"
- value="HELP_REVIEW"
- />
- Help me with review
- </label>
- <label class="template-option">
- <input
- name="template"
- type="radio"
- value="IMPROVE_COMMIT_MESSAGE"
- />
- Improve commit message
- </label>
- <label class="template-option">
- <input name="template" type="radio" value="PATCH_ONLY" />
- Just patch content
- </label>
- </div>
- </div>
- <div class="context-selector">
- <md-outlined-select label="Context">
- <md-select-option md-menu-item="">
- <div slot="headline">3 lines (default)</div>
- </md-select-option>
- <md-select-option md-menu-item="">
- <div slot="headline">10 lines</div>
- </md-select-option>
- <md-select-option md-menu-item="">
- <div slot="headline">25 lines</div>
- </md-select-option>
- <md-select-option md-menu-item="">
- <div slot="headline">50 lines</div>
- </md-select-option>
- <md-select-option md-menu-item="">
- <div slot="headline">100 lines</div>
- </md-select-option>
- </md-outlined-select>
- </div>
- </div>
- <textarea
- placeholder="Patch content will appear here..."
- readonly=""
- >
- </textarea>
- <div class="toolbar">
- <div class="info-text">
- You can paste this prompt in an AI Model if your project
+ <h3 class="heading-3">
+ Copy AI Prompt (experimental)
+ </h3>
+ </section>
+ <section class="flexContainer">
+ <div class="content">
+ <div class="options-bar">
+ <div class="template-selector">
+ <div class="template-options">
+ <label class="template-option">
+ <md-radio
+ checked=""
+ name="template"
+ tabindex="0"
+ >
+ </md-radio>
+ Help me with review
+ </label>
+ <label class="template-option">
+ <md-radio
+ name="template"
+ tabindex="-1"
+ >
+ </md-radio>
+ Improve commit message
+ </label>
+ <label class="template-option">
+ <md-radio
+ name="template"
+ tabindex="-1"
+ >
+ </md-radio>
+ Just patch content
+ </label>
+ </div>
+ </div>
+ <div class="context-selector">
+ <md-outlined-select label="Context">
+ <md-select-option md-menu-item="">
+ <div slot="headline">
+ 3 lines (default)
+ </div>
+ </md-select-option>
+ <md-select-option md-menu-item="">
+ <div slot="headline">
+ 10 lines
+ </div>
+ </md-select-option>
+ <md-select-option md-menu-item="">
+ <div slot="headline">
+ 25 lines
+ </div>
+ </md-select-option>
+ <md-select-option md-menu-item="">
+ <div slot="headline">
+ 50 lines
+ </div>
+ </md-select-option>
+ <md-select-option md-menu-item="">
+ <div slot="headline">
+ 100 lines
+ </div>
+ </md-select-option>
+ </md-outlined-select>
+ </div>
+ </div>
+ <textarea
+ placeholder="Patch content will appear here..."
+ readonly=""
+ >
+ </textarea>
+ <div class="toolbar">
+ <div class="info-text">
+ You can paste this prompt in an AI Model if your project
code can be shared with AI. We recommend a thinking model.
You can also use it for an AI Agent as context (a reference
to a git change).
- </div>
- <gr-button>
- <gr-icon icon="content_copy" small=""> </gr-icon>
- Copy Prompt
- </gr-button>
- </div>
- </div>
- </section>
- <section class="footer">
- <span class="closeButtonContainer">
- <gr-button id="closeButton" link=""> Close </gr-button>
- </span>
- </section>`
+ </div>
+ <gr-button>
+ <gr-icon
+ icon="content_copy"
+ small=""
+ >
+ </gr-icon>
+ Copy Prompt
+ </gr-button>
+ </div>
+ </div>
+ </section>
+ <section class="footer">
+ <span class="closeButtonContainer">
+ <gr-button
+ id="closeButton"
+ link=""
+ >
+ Close
+ </gr-button>
+ </span>
+ </section>`
);
});
});
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 f702137..5ddc65e 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
@@ -216,6 +216,7 @@
.rebaseCheckbox {
display: flex;
align-items: center;
+ margin-top: 0.5em;
}
.rebaseOption {
display: flex;
@@ -227,6 +228,13 @@
.rebaseWithCommitterEmail {
margin-top: var(--spacing-m);
}
+ md-checkbox {
+ flex-shrink: 0;
+ }
+ gr-validation-options {
+ display: flex;
+ align-items: center;
+ }
`,
];
}
diff --git a/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.ts b/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.ts
index 96f4f01..dd3bed9 100644
--- a/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.ts
+++ b/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.ts
@@ -6,7 +6,6 @@
import '../../diff/gr-diff-mode-selector/gr-diff-mode-selector';
import '../../diff/gr-patch-range-select/gr-patch-range-select';
import '../../edit/gr-edit-controls/gr-edit-controls';
-import '../../shared/gr-select/gr-select';
import '../../shared/gr-button/gr-button';
import '../../shared/gr-icon/gr-icon';
import '../gr-commit-info/gr-commit-info';
diff --git a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.ts b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.ts
index 9875784..b42c535 100644
--- a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.ts
+++ b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.ts
@@ -11,7 +11,6 @@
import '../../shared/gr-button/gr-button';
import '../../shared/gr-cursor-manager/gr-cursor-manager';
import '../../shared/gr-icon/gr-icon';
-import '../../shared/gr-select/gr-select';
import '../../shared/gr-tooltip-content/gr-tooltip-content';
import '../../shared/gr-copy-clipboard/gr-copy-clipboard';
import '../../shared/gr-file-status/gr-file-status';
diff --git a/polygerrit-ui/app/elements/change/gr-validation-options/gr-validation-options.ts b/polygerrit-ui/app/elements/change/gr-validation-options/gr-validation-options.ts
index c5a4da0..35c991e 100644
--- a/polygerrit-ui/app/elements/change/gr-validation-options/gr-validation-options.ts
+++ b/polygerrit-ui/app/elements/change/gr-validation-options/gr-validation-options.ts
@@ -25,13 +25,17 @@
return [
materialStyles,
css`
- .selectionLabel {
+ :host {
display: block;
+ }
+ .selectionLabel {
margin-left: -4px;
}
md-checkbox {
- --md-checkbox-container-size: 15px;
- --md-checkbox-icon-size: 15px;
+ flex-shrink: 0;
+ }
+ label {
+ cursor: pointer;
}
`,
];
@@ -60,10 +64,14 @@
return html`
<md-checkbox
class="selectionLabel"
+ id=${option.name}
+ touch-target="wrapper"
?checked=${!!this.isOptionSelected.get(option.name)}
@click=${() => this.toggleCheckbox(option)}
></md-checkbox>
- ${capitalizeFirstLetter(option.description)}
+ <label for=${option.name}
+ >${capitalizeFirstLetter(option.description)}</label
+ >
`;
}
diff --git a/polygerrit-ui/app/elements/change/gr-validation-options/gr-validation-options_test.ts b/polygerrit-ui/app/elements/change/gr-validation-options/gr-validation-options_test.ts
index 87eea0b..7bbdf85 100644
--- a/polygerrit-ui/app/elements/change/gr-validation-options/gr-validation-options_test.ts
+++ b/polygerrit-ui/app/elements/change/gr-validation-options/gr-validation-options_test.ts
@@ -32,8 +32,12 @@
assert.shadowDom.equal(
element,
/* HTML */ `
- <md-checkbox class="selectionLabel"></md-checkbox>Option 1
- <md-checkbox class="selectionLabel"></md-checkbox>Option 2
+ <md-checkbox class="selectionLabel" id="o1" touch-target="wrapper">
+ </md-checkbox>
+ <label for="o1"> Option 1 </label>
+ <md-checkbox class="selectionLabel" id="o2" touch-target="wrapper">
+ </md-checkbox>
+ <label for="o2"> Option 2 </label>
`
);
});
diff --git a/polygerrit-ui/app/elements/diff/gr-patch-range-select/gr-patch-range-select.ts b/polygerrit-ui/app/elements/diff/gr-patch-range-select/gr-patch-range-select.ts
index 1442610..6f59c01 100644
--- a/polygerrit-ui/app/elements/diff/gr-patch-range-select/gr-patch-range-select.ts
+++ b/polygerrit-ui/app/elements/diff/gr-patch-range-select/gr-patch-range-select.ts
@@ -4,7 +4,6 @@
* SPDX-License-Identifier: Apache-2.0
*/
import '../../shared/gr-dropdown-list/gr-dropdown-list';
-import '../../shared/gr-select/gr-select';
import '../../shared/gr-weblink/gr-weblink';
import {convertToString, pluralize} from '../../../utils/string-util';
import {getAppContext} from '../../../services/app-context';
diff --git a/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view.ts b/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view.ts
index b84aab3..1383737 100644
--- a/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view.ts
+++ b/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view.ts
@@ -8,7 +8,6 @@
import '../../shared/gr-button/gr-button';
import '../../shared/gr-diff-preferences/gr-diff-preferences';
import '../../shared/gr-page-nav/gr-page-nav';
-import '../../shared/gr-select/gr-select';
import '../../shared/gr-icon/gr-icon';
import '../gr-account-info/gr-account-info';
import '../gr-agreements-list/gr-agreements-list';