Make sure that all empty events are declared in HTMLElementEventMap
This allows the `fireEvent()` utility functions to check that the event
was actually declared on `HTMLElementEventMap`.
Release-Notes: skip
Change-Id: I08e280cb23649a23f3e7bf15b16178be92e0e2e0
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 ce0ea02..2bd2cfb 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,18 +34,6 @@
import {BindValueChangeEvent, ValueChangedEvent} from '../../../types/events';
import {assertIsDefined, queryAndAssert} from '../../../utils/common-util';
-/**
- * Fired when the section has been modified or removed.
- *
- * @event access-modified
- */
-
-/**
- * Fired when a section that was previously added was removed.
- *
- * @event added-section-removed
- */
-
const GLOBAL_NAME = 'GLOBAL_CAPABILITIES';
// The name that gets automatically input when a new reference is added.
@@ -533,6 +521,10 @@
declare global {
interface HTMLElementEventMap {
+ /** Fired when the section has been modified or removed. */
+ 'access-modified': CustomEvent<{}>;
+ /** Fired when a section that was previously added was removed. */
+ 'added-section-removed': CustomEvent<{}>;
'section-changed': ValueChangedEvent<PermissionAccessSection>;
}
interface HTMLElementTagNameMap {
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 13a8cd0..6b5a192 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
@@ -38,6 +38,9 @@
interface HTMLElementTagNameMap {
'gr-create-change-dialog': GrCreateChangeDialog;
}
+ interface HTMLElementEventMap {
+ 'can-create-change': CustomEvent<{}>;
+ }
}
@customElement('gr-create-change-dialog')
diff --git a/polygerrit-ui/app/elements/admin/gr-create-group-dialog/gr-create-group-dialog.ts b/polygerrit-ui/app/elements/admin/gr-create-group-dialog/gr-create-group-dialog.ts
index 96688e9..269bfa3 100644
--- a/polygerrit-ui/app/elements/admin/gr-create-group-dialog/gr-create-group-dialog.ts
+++ b/polygerrit-ui/app/elements/admin/gr-create-group-dialog/gr-create-group-dialog.ts
@@ -22,6 +22,9 @@
interface HTMLElementTagNameMap {
'gr-create-group-dialog': GrCreateGroupDialog;
}
+ interface HTMLElementEventMap {
+ 'has-new-group-name': CustomEvent<{}>;
+ }
}
@customElement('gr-create-group-dialog')
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 558d571..b5053d1 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
@@ -20,6 +20,9 @@
interface HTMLElementTagNameMap {
'gr-create-pointer-dialog': GrCreatePointerDialog;
}
+ interface HTMLElementEventMap {
+ 'update-item-name': CustomEvent<{}>;
+ }
}
@customElement('gr-create-pointer-dialog')
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 3548130..aa98af7 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
@@ -31,16 +31,14 @@
interface HTMLElementTagNameMap {
'gr-create-repo-dialog': GrCreateRepoDialog;
}
+ interface HTMLElementEventMap {
+ /** Fired when repostiory name is entered. */
+ 'new-repo-name': CustomEvent<{}>;
+ }
}
@customElement('gr-create-repo-dialog')
export class GrCreateRepoDialog extends LitElement {
- /**
- * Fired when repostiory name is entered.
- *
- * @event new-repo-name
- */
-
@query('input')
input?: HTMLInputElement;
diff --git a/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.ts b/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.ts
index 46e8ae0..c6ec54b 100644
--- a/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.ts
+++ b/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.ts
@@ -64,16 +64,6 @@
value: GroupInfo;
}
-/**
- * Fired when the permission has been modified or removed.
- *
- * @event access-modified
- */
-/**
- * Fired when a permission that was previously added was removed.
- *
- * @event added-permission-removed
- */
@customElement('gr-permission')
export class GrPermission extends LitElement {
@property({type: String})
@@ -579,6 +569,8 @@
declare global {
interface HTMLElementEventMap {
+ /** Fired when a permission that was previously added was removed. */
+ 'added-permission-removed': CustomEvent<{}>;
'permission-changed': ValueChangedEvent<
PermissionArrayItem<EditablePermissionInfo>
>;
diff --git a/polygerrit-ui/app/elements/admin/gr-rule-editor/gr-rule-editor.ts b/polygerrit-ui/app/elements/admin/gr-rule-editor/gr-rule-editor.ts
index 82a4eb5..2888229 100644
--- a/polygerrit-ui/app/elements/admin/gr-rule-editor/gr-rule-editor.ts
+++ b/polygerrit-ui/app/elements/admin/gr-rule-editor/gr-rule-editor.ts
@@ -18,18 +18,6 @@
import {EditablePermissionRuleInfo} from '../gr-repo-access/gr-repo-access-interfaces';
import {PermissionAction} from '../../../constants/constants';
-/**
- * Fired when the rule has been modified or removed.
- *
- * @event access-modified
- */
-
-/**
- * Fired when a rule that was previously added was removed.
- *
- * @event added-rule-removed
- */
-
const PRIORITY_OPTIONS = [PermissionAction.BATCH, PermissionAction.INTERACTIVE];
const Action = {
@@ -82,6 +70,8 @@
'gr-rule-editor': GrRuleEditor;
}
interface HTMLElementEventMap {
+ /** Fired when a rule that was previously added was removed. */
+ 'added-rule-removed': CustomEvent<{}>;
'rule-changed': ValueChangedEvent<Rule | undefined>;
}
}
diff --git a/polygerrit-ui/app/elements/change-list/gr-change-list/gr-change-list.ts b/polygerrit-ui/app/elements/change-list/gr-change-list/gr-change-list.ts
index 748c2b8..3f69401 100644
--- a/polygerrit-ui/app/elements/change-list/gr-change-list/gr-change-list.ts
+++ b/polygerrit-ui/app/elements/change-list/gr-change-list/gr-change-list.ts
@@ -77,18 +77,6 @@
@customElement('gr-change-list')
export class GrChangeList extends LitElement {
/**
- * Fired when next page key shortcut was pressed.
- *
- * @event next-page
- */
-
- /**
- * Fired when previous page key shortcut was pressed.
- *
- * @event previous-page
- */
-
- /**
* The logged-in user's account, or an empty object if no user is logged
* in.
*/
@@ -484,5 +472,9 @@
}
interface HTMLElementEventMap {
'selected-index-changed': ValueChangedEvent<number>;
+ /** Fired when next page key shortcut was pressed. */
+ 'next-page': CustomEvent<{}>;
+ /** Fired when previous page key shortcut was pressed. */
+ 'previous-page': CustomEvent<{}>;
}
}
diff --git a/polygerrit-ui/app/elements/change-list/gr-create-change-help/gr-create-change-help.ts b/polygerrit-ui/app/elements/change-list/gr-create-change-help/gr-create-change-help.ts
index 9c53fea..adbf2ed 100644
--- a/polygerrit-ui/app/elements/change-list/gr-create-change-help/gr-create-change-help.ts
+++ b/polygerrit-ui/app/elements/change-list/gr-create-change-help/gr-create-change-help.ts
@@ -14,6 +14,10 @@
interface HTMLElementTagNameMap {
'gr-create-change-help': GrCreateChangeHelp;
}
+ interface HTMLElementEventMap {
+ /** Fired when the "Create change" button is tapped. */
+ 'create-tap': CustomEvent<{}>;
+ }
}
@customElement('gr-create-change-help')
@@ -87,9 +91,6 @@
`;
}
- /**
- * Fired when the "Create change" button is tapped.
- */
_handleCreateTap(e: Event) {
e.preventDefault();
fireEvent(this, 'create-tap');
diff --git a/polygerrit-ui/app/elements/change-list/gr-create-destination-dialog/gr-create-destination-dialog.ts b/polygerrit-ui/app/elements/change-list/gr-create-destination-dialog/gr-create-destination-dialog.ts
index 90fff4d..16220ba 100644
--- a/polygerrit-ui/app/elements/change-list/gr-create-destination-dialog/gr-create-destination-dialog.ts
+++ b/polygerrit-ui/app/elements/change-list/gr-create-destination-dialog/gr-create-destination-dialog.ts
@@ -89,7 +89,7 @@
// 'confirm' event here, so let's stop propagation of the bare event.
e.preventDefault();
e.stopPropagation();
- fireNoBubbleNoCompose(this, 'confirm', detail);
+ fireNoBubbleNoCompose(this, 'confirm-destination', detail);
};
}
@@ -97,4 +97,7 @@
interface HTMLElementTagNameMap {
'gr-create-destination-dialog': GrCreateDestinationDialog;
}
+ interface HTMLElementEventMap {
+ 'confirm-destination': CustomEvent<CreateDestinationConfirmDetail>;
+ }
}
diff --git a/polygerrit-ui/app/elements/change-list/gr-dashboard-view/gr-dashboard-view.ts b/polygerrit-ui/app/elements/change-list/gr-dashboard-view/gr-dashboard-view.ts
index cd30440..ae2797a 100644
--- a/polygerrit-ui/app/elements/change-list/gr-dashboard-view/gr-dashboard-view.ts
+++ b/polygerrit-ui/app/elements/change-list/gr-dashboard-view/gr-dashboard-view.ts
@@ -241,7 +241,9 @@
</dialog>
<gr-create-destination-dialog
id="destinationDialog"
- @confirm=${(e: CustomEvent<CreateDestinationConfirmDetail>) => {
+ @confirm-destination=${(
+ e: CustomEvent<CreateDestinationConfirmDetail>
+ ) => {
this.handleDestinationConfirm(e);
}}
></gr-create-destination-dialog>
diff --git a/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions.ts b/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions.ts
index 259c8be..721c0c1 100644
--- a/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions.ts
+++ b/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions.ts
@@ -661,7 +661,7 @@
id="confirmRebase"
class="confirmDialog"
.changeNumber=${this.change?._number}
- @confirm=${this.handleRebaseConfirm}
+ @confirm-rebase=${this.handleRebaseConfirm}
@cancel=${this.handleConfirmDialogCancel}
.disableActions=${this.inProgressActionKeys.has(
RevisionActions.REBASE
@@ -698,7 +698,7 @@
<gr-confirm-revert-dialog
id="confirmRevertDialog"
class="confirmDialog"
- @confirm=${this.handleRevertDialogConfirm}
+ @confirm-revert=${this.handleRevertDialogConfirm}
@cancel=${this.handleConfirmDialogCancel}
></gr-confirm-revert-dialog>
<gr-confirm-abandon-dialog
@@ -2223,7 +2223,11 @@
declare global {
interface HTMLElementEventMap {
+ 'download-tap': CustomEvent<{}>;
+ 'edit-tap': CustomEvent<{}>;
+ 'included-tap': CustomEvent<{}>;
'revision-actions-changed': CustomEvent<{value: ActionNameToActionInfoMap}>;
+ 'stop-edit-tap': CustomEvent<{}>;
}
interface HTMLElementTagNameMap {
'gr-change-actions': GrChangeActions;
diff --git a/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions_test.ts b/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions_test.ts
index 4602eac..a23f1af 100644
--- a/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions_test.ts
+++ b/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions_test.ts
@@ -1456,7 +1456,7 @@
enabled: true,
};
queryAndAssert(element, 'gr-confirm-revert-dialog').dispatchEvent(
- new CustomEvent('confirm', {
+ new CustomEvent('confirm-revert', {
detail: {
message: 'foo message',
revertType: 1,
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts
index 1d3e3b1..6a19ce9 100644
--- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts
+++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts
@@ -3241,6 +3241,7 @@
declare global {
interface HTMLElementEventMap {
'toggle-star': CustomEvent<ChangeStarToggleStarDetail>;
+ 'change-details-loaded': CustomEvent<{}>;
}
interface HTMLElementTagNameMap {
'gr-change-view': GrChangeView;
diff --git a/polygerrit-ui/app/elements/change/gr-confirm-abandon-dialog/gr-confirm-abandon-dialog.ts b/polygerrit-ui/app/elements/change/gr-confirm-abandon-dialog/gr-confirm-abandon-dialog.ts
index cbe3430..17e83a3 100644
--- a/polygerrit-ui/app/elements/change/gr-confirm-abandon-dialog/gr-confirm-abandon-dialog.ts
+++ b/polygerrit-ui/app/elements/change/gr-confirm-abandon-dialog/gr-confirm-abandon-dialog.ts
@@ -133,7 +133,7 @@
// private but used in test
confirm() {
- fireNoBubble(this, 'confirm', {reason: this.message});
+ fireNoBubble(this, 'confirm', {});
}
// private but used in test
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 3150fc8..b460336 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
@@ -355,7 +355,7 @@
allowConflicts: this.rebaseAllowConflicts.checked,
rebaseChain: !!this.rebaseChain?.checked,
};
- fireNoBubbleNoCompose(this, 'confirm', detail);
+ fireNoBubbleNoCompose(this, 'confirm-rebase', detail);
this.text = '';
}
@@ -398,4 +398,7 @@
interface HTMLElementTagNameMap {
'gr-confirm-rebase-dialog': GrConfirmRebaseDialog;
}
+ interface HTMLElementEventMap {
+ 'confirm-rebase': CustomEvent<ConfirmRebaseEventDetail>;
+ }
}
diff --git a/polygerrit-ui/app/elements/change/gr-confirm-revert-dialog/gr-confirm-revert-dialog.ts b/polygerrit-ui/app/elements/change/gr-confirm-revert-dialog/gr-confirm-revert-dialog.ts
index dd9a5ee..b7b0b19 100644
--- a/polygerrit-ui/app/elements/change/gr-confirm-revert-dialog/gr-confirm-revert-dialog.ts
+++ b/polygerrit-ui/app/elements/change/gr-confirm-revert-dialog/gr-confirm-revert-dialog.ts
@@ -9,7 +9,7 @@
import {LitElement, html, css, nothing} from 'lit';
import {customElement, state} from 'lit/decorators.js';
import {ChangeActionDialog, ChangeInfo, CommitId} from '../../../types/common';
-import {fire, fireAlert} from '../../../utils/event-util';
+import {fire, fireAlert, fireEvent} from '../../../utils/event-util';
import {sharedStyles} from '../../../styles/shared-styles';
import {BindValueChangeEvent} from '../../../types/events';
import {resolve} from '../../../models/dependency';
@@ -30,21 +30,6 @@
message?: string;
}
-export interface CancelRevertEventDetail {
- revertType: RevertType;
-}
-
-declare global {
- interface HTMLElementEventMap {
- /** Fired when the confirm button is pressed. */
- // prettier-ignore
- 'confirm': CustomEvent<ConfirmRevertEventDetail>;
- /** Fired when the cancel button is pressed. */
- // prettier-ignore
- 'cancel': CustomEvent<CancelRevertEventDetail>;
- }
-}
-
@customElement('gr-confirm-revert-dialog')
export class GrConfirmRevertDialog
extends LitElement
@@ -302,16 +287,13 @@
revertType: this.revertType,
message: this.message,
};
- fire(this, 'confirm', detail);
+ fire(this, 'confirm-revert', detail);
}
private handleCancelTap(e: Event) {
e.preventDefault();
e.stopPropagation();
- const detail: ConfirmRevertEventDetail = {
- revertType: this.revertType,
- };
- fire(this, 'cancel', detail);
+ fireEvent(this, 'cancel');
}
}
@@ -319,4 +301,7 @@
interface HTMLElementTagNameMap {
'gr-confirm-revert-dialog': GrConfirmRevertDialog;
}
+ interface HTMLElementEventMap {
+ 'confirm-revert': CustomEvent<ConfirmRevertEventDetail>;
+ }
}
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 4403a8f..97d6d77 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
@@ -45,22 +45,6 @@
@customElement('gr-file-list-header')
export class GrFileListHeader extends LitElement {
- /**
- * @event expand-diffs
- */
-
- /**
- * @event collapse-diffs
- */
-
- /**
- * @event open-diff-prefs
- */
-
- /**
- * @event open-download-dialog
- */
-
@property({type: Object})
account: AccountInfo | undefined;
@@ -449,4 +433,10 @@
interface HTMLElementTagNameMap {
'gr-file-list-header': GrFileListHeader;
}
+ interface HTMLElementEventMap {
+ 'collapse-diffs': CustomEvent<{}>;
+ 'expand-diffs': CustomEvent<{}>;
+ 'open-diff-prefs': CustomEvent<{}>;
+ 'open-download-dialog': CustomEvent<{}>;
+ }
}
diff --git a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.ts b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.ts
index 9f2c6be..3a56c13 100644
--- a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.ts
+++ b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.ts
@@ -175,43 +175,6 @@
@customElement('gr-reply-dialog')
export class GrReplyDialog extends LitElement {
- /**
- * Fired when a reply is successfully sent.
- *
- * @event send
- */
-
- /**
- * Fired when the user presses the cancel button.
- *
- * @event cancel
- */
-
- /**
- * Fires to show an alert when a send is attempted on the non-latest patch.
- *
- * @event show-alert
- */
-
- /**
- * Fires when the reply dialog believes that the server side diff drafts
- * have been updated and need to be refreshed.
- *
- * @event comment-refresh
- */
-
- /**
- * Fires when the state of the send button (enabled/disabled) changes.
- *
- * @event send-disabled-changed
- */
-
- /**
- * Fired to reload the change page.
- *
- * @event reload
- */
-
FocusTarget = FocusTarget;
private readonly reporting = getAppContext().reportingService;
@@ -2132,4 +2095,19 @@
interface HTMLElementTagNameMap {
'gr-reply-dialog': GrReplyDialog;
}
+ interface HTMLElementEventMap {
+ /** Fired when the user presses the cancel button. */
+ /* prettier-ignore */
+ 'cancel': CustomEvent<{}>;
+ /**
+ * Fires when the reply dialog believes that the server side diff drafts
+ * have been updated and need to be refreshed.
+ */
+ 'comment-refresh': CustomEvent<{}>;
+ /** Fired when a reply is successfully sent. */
+ /* prettier-ignore */
+ 'send': CustomEvent<{}>;
+ /** Fires when the state of the send button (enabled/disabled) changes. */
+ 'send-disabled-changed': CustomEvent<{}>;
+ }
}
diff --git a/polygerrit-ui/app/elements/core/gr-account-dropdown/gr-account-dropdown.ts b/polygerrit-ui/app/elements/core/gr-account-dropdown/gr-account-dropdown.ts
index b46d2b9..127c2ac 100644
--- a/polygerrit-ui/app/elements/core/gr-account-dropdown/gr-account-dropdown.ts
+++ b/polygerrit-ui/app/elements/core/gr-account-dropdown/gr-account-dropdown.ts
@@ -23,6 +23,9 @@
interface HTMLElementTagNameMap {
'gr-account-dropdown': GrAccountDropdown;
}
+ interface HTMLElementEventMap {
+ 'show-keyboard-shortcuts': CustomEvent<{}>;
+ }
}
@customElement('gr-account-dropdown')
diff --git a/polygerrit-ui/app/elements/core/gr-error-dialog/gr-error-dialog.ts b/polygerrit-ui/app/elements/core/gr-error-dialog/gr-error-dialog.ts
index 3898186..224cc13 100644
--- a/polygerrit-ui/app/elements/core/gr-error-dialog/gr-error-dialog.ts
+++ b/polygerrit-ui/app/elements/core/gr-error-dialog/gr-error-dialog.ts
@@ -13,6 +13,10 @@
interface HTMLElementTagNameMap {
'gr-error-dialog': GrErrorDialog;
}
+ interface HTMLElementEventMap {
+ // prettier-ignore
+ 'dismiss': CustomEvent<{}>;
+ }
}
@customElement('gr-error-dialog')
diff --git a/polygerrit-ui/app/elements/core/gr-main-header/gr-main-header.ts b/polygerrit-ui/app/elements/core/gr-main-header/gr-main-header.ts
index 833a91a..e8768dd 100644
--- a/polygerrit-ui/app/elements/core/gr-main-header/gr-main-header.ts
+++ b/polygerrit-ui/app/elements/core/gr-main-header/gr-main-header.ts
@@ -97,6 +97,9 @@
interface HTMLElementTagNameMap {
'gr-main-header': GrMainHeader;
}
+ interface HTMLElementEventMap {
+ 'mobile-search': CustomEvent<{}>;
+ }
}
@customElement('gr-main-header')
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-preferences-dialog/gr-diff-preferences-dialog.ts b/polygerrit-ui/app/elements/diff/gr-diff-preferences-dialog/gr-diff-preferences-dialog.ts
index 69ff201..226d7e3 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-preferences-dialog/gr-diff-preferences-dialog.ts
+++ b/polygerrit-ui/app/elements/diff/gr-diff-preferences-dialog/gr-diff-preferences-dialog.ts
@@ -136,4 +136,7 @@
interface HTMLElementTagNameMap {
'gr-diff-preferences-dialog': GrDiffPreferencesDialog;
}
+ interface HTMLElementEventMap {
+ 'reload-diff-preference': CustomEvent<{}>;
+ }
}
diff --git a/polygerrit-ui/app/elements/settings/gr-account-info/gr-account-info.ts b/polygerrit-ui/app/elements/settings/gr-account-info/gr-account-info.ts
index 0e75abb..be055aa 100644
--- a/polygerrit-ui/app/elements/settings/gr-account-info/gr-account-info.ts
+++ b/polygerrit-ui/app/elements/settings/gr-account-info/gr-account-info.ts
@@ -25,12 +25,6 @@
@customElement('gr-account-info')
export class GrAccountInfo extends LitElement {
- /**
- * Fired when account details are changed.
- *
- * @event account-detail-update
- */
-
// private but used in test
@state() nameMutable?: boolean;
@@ -410,6 +404,8 @@
declare global {
interface HTMLElementEventMap {
'unsaved-changes-changed': ValueChangedEvent<boolean>;
+ /** Fired when account details are changed. */
+ 'account-detail-update': CustomEvent<{}>;
}
interface HTMLElementTagNameMap {
'gr-account-info': GrAccountInfo;
diff --git a/polygerrit-ui/app/elements/settings/gr-registration-dialog/gr-registration-dialog.ts b/polygerrit-ui/app/elements/settings/gr-registration-dialog/gr-registration-dialog.ts
index a20c0ee..c859f79 100644
--- a/polygerrit-ui/app/elements/settings/gr-registration-dialog/gr-registration-dialog.ts
+++ b/polygerrit-ui/app/elements/settings/gr-registration-dialog/gr-registration-dialog.ts
@@ -27,12 +27,6 @@
@customElement('gr-registration-dialog')
export class GrRegistrationDialog extends LitElement {
/**
- * Fired when account details are changed.
- *
- * @event account-detail-update
- */
-
- /**
* Fired when the close button is pressed.
*
* @event close
diff --git a/polygerrit-ui/app/elements/shared/gr-autocomplete-dropdown/gr-autocomplete-dropdown.ts b/polygerrit-ui/app/elements/shared/gr-autocomplete-dropdown/gr-autocomplete-dropdown.ts
index 34b8f11..8620260 100644
--- a/polygerrit-ui/app/elements/shared/gr-autocomplete-dropdown/gr-autocomplete-dropdown.ts
+++ b/polygerrit-ui/app/elements/shared/gr-autocomplete-dropdown/gr-autocomplete-dropdown.ts
@@ -20,6 +20,9 @@
interface HTMLElementTagNameMap {
'gr-autocomplete-dropdown': GrAutocompleteDropdown;
}
+ interface HTMLElementEventMap {
+ 'dropdown-closed': CustomEvent<{}>;
+ }
}
export interface Item {
diff --git a/polygerrit-ui/app/elements/shared/gr-comment/gr-comment.ts b/polygerrit-ui/app/elements/shared/gr-comment/gr-comment.ts
index c844d42..07e6b3a 100644
--- a/polygerrit-ui/app/elements/shared/gr-comment/gr-comment.ts
+++ b/polygerrit-ui/app/elements/shared/gr-comment/gr-comment.ts
@@ -1316,4 +1316,7 @@
interface HTMLElementTagNameMap {
'gr-comment': GrComment;
}
+ interface HTMLElementEventMap {
+ 'copy-comment-link': CustomEvent<{}>;
+ }
}
diff --git a/polygerrit-ui/app/elements/shared/gr-confirm-delete-comment-dialog/gr-confirm-delete-comment-dialog.ts b/polygerrit-ui/app/elements/shared/gr-confirm-delete-comment-dialog/gr-confirm-delete-comment-dialog.ts
index 1047b87..737984f 100644
--- a/polygerrit-ui/app/elements/shared/gr-confirm-delete-comment-dialog/gr-confirm-delete-comment-dialog.ts
+++ b/polygerrit-ui/app/elements/shared/gr-confirm-delete-comment-dialog/gr-confirm-delete-comment-dialog.ts
@@ -109,7 +109,7 @@
private handleConfirmTap(e: Event) {
e.preventDefault();
e.stopPropagation();
- fireNoBubble(this, 'confirm', {reason: this.message});
+ fireNoBubble(this, 'confirm', {});
}
private handleCancelTap(e: Event) {
diff --git a/polygerrit-ui/app/elements/shared/gr-editable-content/gr-editable-content.ts b/polygerrit-ui/app/elements/shared/gr-editable-content/gr-editable-content.ts
index 01ebb27..f52e5c1 100644
--- a/polygerrit-ui/app/elements/shared/gr-editable-content/gr-editable-content.ts
+++ b/polygerrit-ui/app/elements/shared/gr-editable-content/gr-editable-content.ts
@@ -21,7 +21,11 @@
import {sharedStyles} from '../../../styles/shared-styles';
import {css} from 'lit';
import {PropertyValues} from 'lit';
-import {BindValueChangeEvent, ValueChangedEvent} from '../../../types/events';
+import {
+ BindValueChangeEvent,
+ EditableContentSaveEvent,
+ ValueChangedEvent,
+} from '../../../types/events';
import {nothing} from 'lit';
import {classMap} from 'lit/directives/class-map.js';
import {when} from 'lit/directives/when.js';
@@ -39,24 +43,16 @@
interface HTMLElementEventMap {
'content-changed': ValueChangedEvent<string>;
'editing-changed': ValueChangedEvent<boolean>;
+ /** Fired when the 'cancel' button is pressed. */
+ 'editable-content-cancel': CustomEvent<{}>;
+ /** Fired when the 'save' button is pressed. */
+ 'editable-content-save': EditableContentSaveEvent;
}
}
@customElement('gr-editable-content')
export class GrEditableContent extends LitElement {
/**
- * Fired when the save button is pressed.
- *
- * @event editable-content-save
- */
-
- /**
- * Fired when the cancel button is pressed.
- *
- * @event editable-content-cancel
- */
-
- /**
* Fired when content is restored from storage.
*
* @event show-alert
diff --git a/polygerrit-ui/app/elements/shared/gr-hovercard-account/gr-hovercard-account-contents.ts b/polygerrit-ui/app/elements/shared/gr-hovercard-account/gr-hovercard-account-contents.ts
index 2730fcf..c955f4ea 100644
--- a/polygerrit-ui/app/elements/shared/gr-hovercard-account/gr-hovercard-account-contents.ts
+++ b/polygerrit-ui/app/elements/shared/gr-hovercard-account/gr-hovercard-account-contents.ts
@@ -572,4 +572,9 @@
interface HTMLElementTagNameMap {
'gr-hovercard-account-contents': GrHovercardAccountContents;
}
+ interface HTMLElementEventMap {
+ 'action-taken': CustomEvent<{}>;
+ 'attention-set-updated': CustomEvent<{}>;
+ 'link-clicked': CustomEvent<{}>;
+ }
}
diff --git a/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.ts b/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.ts
index 7e90c8d..7f18201 100644
--- a/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.ts
+++ b/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.ts
@@ -22,6 +22,9 @@
interface HTMLElementTagNameMap {
'gr-list-view': GrListView;
}
+ interface HTMLElementEventMap {
+ 'create-clicked': CustomEvent<{}>;
+ }
}
@customElement('gr-list-view')
diff --git a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff.ts b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff.ts
index 0f4ab2e..b21d7d6 100644
--- a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff.ts
+++ b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff.ts
@@ -1826,6 +1826,9 @@
'gr-diff': GrDiff;
}
interface HTMLElementEventMap {
+ 'comment-thread-mouseenter': CustomEvent<{}>;
+ 'comment-thread-mouseleave': CustomEvent<{}>;
'loading-changed': ValueChangedEvent<boolean>;
+ 'render-required': CustomEvent<{}>;
}
}
diff --git a/polygerrit-ui/app/embed/diff/gr-selection-action-box/gr-selection-action-box.ts b/polygerrit-ui/app/embed/diff/gr-selection-action-box/gr-selection-action-box.ts
index cb08e55..982f0f5 100644
--- a/polygerrit-ui/app/embed/diff/gr-selection-action-box/gr-selection-action-box.ts
+++ b/polygerrit-ui/app/embed/diff/gr-selection-action-box/gr-selection-action-box.ts
@@ -14,16 +14,14 @@
interface HTMLElementTagNameMap {
'gr-selection-action-box': GrSelectionActionBox;
}
+ interface HTMLElementEventMap {
+ /** Fired when the comment creation action was taken (click). */
+ 'create-comment-requested': CustomEvent<{}>;
+ }
}
@customElement('gr-selection-action-box')
export class GrSelectionActionBox extends LitElement {
- /**
- * Fired when the comment creation action was taken (click).
- *
- * @event create-comment-requested
- */
-
@query('#tooltip')
tooltip?: GrTooltip;
diff --git a/polygerrit-ui/app/types/events.ts b/polygerrit-ui/app/types/events.ts
index 352ff5b..0dc1a65 100644
--- a/polygerrit-ui/app/types/events.ts
+++ b/polygerrit-ui/app/types/events.ts
@@ -11,6 +11,11 @@
import {DropdownLink} from '../elements/shared/gr-dropdown/gr-dropdown';
import {AutocompleteCommitEvent} from '../elements/shared/gr-autocomplete/gr-autocomplete';
+// TODO: Remove this enum and just use the strings directly.
+// The fire() util functions provide full type safety, and there is nothing to
+// be gained by collecting all event names in one global enum.
+// It is much more convenient to search for an event name and to rely on finding
+// all listeners and dispatchers in on search.
export enum EventType {
BIND_VALUE_CHANGED = 'bind-value-changed',
CHANGE = 'change',
@@ -18,7 +23,6 @@
COMMIT = 'commit',
DIALOG_CHANGE = 'dialog-change',
DROP = 'drop',
- EDITABLE_CONTENT_SAVE = 'editable-content-save',
GR_RPC_LOG = 'gr-rpc-log',
IRON_ANNOUNCE = 'iron-announce',
KEYDOWN = 'keydown',
@@ -40,22 +44,34 @@
TITLE_CHANGE = 'title-change',
}
+// TODO: Local events that are only fired by one component should also be
+// declared and documented in that component. Don't collect ALL the events here.
+// 'show-alert' for example is fine to keep, because it is fired all over the
+// place. But 'line-cursor-moved-in' is only fired by <gr-diff-cursor>, so let's
+// move it there.
declare global {
interface HTMLElementEventMap {
'add-reviewer': AddReviewerEvent;
'bind-value-changed': BindValueChangeEvent;
+ /** Fired when a 'cancel' button in a dialog was pressed. */
+ // prettier-ignore
+ 'cancel': CustomEvent<{}>;
/* prettier-ignore */
'change': ChangeEvent;
/* prettier-ignore */
'changed': ChangedEvent;
/* prettier-ignore */
'commit': AutocompleteCommitEvent;
+ /** Fired when a 'confirm' button in a dialog was pressed. */
+ // prettier-ignore
+ 'confirm': CustomEvent<{}>;
'dialog-change': DialogChangeEvent;
/* prettier-ignore */
'drop': DropEvent;
- 'editable-content-save': EditableContentSaveEvent;
+ 'hide-alert': CustomEvent<{}>;
'location-change': LocationChangeEvent;
'iron-announce': IronAnnounceEvent;
+ 'iron-resize': CustomEvent<{}>;
'line-mouse-enter': LineNumberEvent;
'line-mouse-leave': LineNumberEvent;
'line-cursor-moved-in': LineNumberEvent;
diff --git a/polygerrit-ui/app/utils/event-util.ts b/polygerrit-ui/app/utils/event-util.ts
index d45ef55..79bae6a 100644
--- a/polygerrit-ui/app/utils/event-util.ts
+++ b/polygerrit-ui/app/utils/event-util.ts
@@ -11,7 +11,10 @@
TabState,
} from '../types/events';
-export function fireEvent(target: EventTarget, type: string) {
+export function fireEvent<K extends keyof HTMLElementEventMap>(
+ target: EventTarget,
+ type: K
+) {
target.dispatchEvent(
new CustomEvent(type, {
composed: true,
@@ -20,7 +23,10 @@
);
}
-export function fireEventNoBubble(target: EventTarget, type: string) {
+export function fireEventNoBubble<K extends keyof HTMLElementEventMap>(
+ target: EventTarget,
+ type: K
+) {
target.dispatchEvent(
new CustomEvent(type, {
composed: true,
@@ -29,7 +35,10 @@
);
}
-export function fireEventNoBubbleNoCompose(target: EventTarget, type: string) {
+export function fireEventNoBubbleNoCompose<K extends keyof HTMLElementEventMap>(
+ target: EventTarget,
+ type: K
+) {
target.dispatchEvent(
new CustomEvent(type, {
composed: false,
@@ -39,18 +48,10 @@
}
export type HTMLElementEventDetailType<K extends keyof HTMLElementEventMap> =
- HTMLElementEventMap[K] extends CustomEvent<infer DT>
- ? unknown extends DT
- ? never
- : DT
- : never;
+ HTMLElementEventMap[K] extends CustomEvent<infer DT> ? DT : never;
type DocumentEventDetailType<K extends keyof DocumentEventMap> =
- DocumentEventMap[K] extends CustomEvent<infer DT>
- ? unknown extends DT
- ? never
- : DT
- : never;
+ DocumentEventMap[K] extends CustomEvent<infer DT> ? DT : never;
export function fire<K extends keyof DocumentEventMap>(
target: Document,