blob: 792f31e58d00ac7054211d54456db2bd0bfa3599 [file] [log] [blame]
/**
* @license
* Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import {HttpMethod} from './rest';
export interface ActionInfo {
method?: HttpMethod;
label?: string;
title?: string;
enabled?: boolean;
}
export enum ActionType {
CHANGE = 'change',
REVISION = 'revision',
}
export enum ActionPriority {
CHANGE = 2,
DEFAULT = 0,
PRIMARY = 3,
REVIEW = -3,
REVISION = 1,
}
export enum ChangeActions {
ABANDON = 'abandon',
DELETE = '/',
DELETE_EDIT = 'deleteEdit',
EDIT = 'edit',
FOLLOW_UP = 'followup',
IGNORE = 'ignore',
MOVE = 'move',
PRIVATE = 'private',
PRIVATE_DELETE = 'private.delete',
PUBLISH_EDIT = 'publishEdit',
REBASE = 'rebase',
REBASE_EDIT = 'rebaseEdit',
READY = 'ready',
RESTORE = 'restore',
REVERT = 'revert',
REVERT_SUBMISSION = 'revert_submission',
REVIEWED = 'reviewed',
STOP_EDIT = 'stopEdit',
SUBMIT = 'submit',
UNIGNORE = 'unignore',
UNREVIEWED = 'unreviewed',
WIP = 'wip',
}
export enum RevisionActions {
CHERRYPICK = 'cherrypick',
REBASE = 'rebase',
SUBMIT = 'submit',
DOWNLOAD = 'download',
}
export type PrimaryActionKey = ChangeActions | RevisionActions;
export interface ChangeActionsPluginApi {
addPrimaryActionKey(key: PrimaryActionKey): void;
removePrimaryActionKey(key: string): void;
hideQuickApproveAction(): void;
setActionOverflow(type: ActionType, key: string, overflow: boolean): void;
setActionPriority(
type: ActionType,
key: string,
priority: ActionPriority
): void;
setActionHidden(type: ActionType, key: string, hidden: boolean): void;
add(type: ActionType, label: string): string;
remove(key: string): void;
addTapListener(
key: string,
handler: EventListenerOrEventListenerObject
): void;
removeTapListener(
key: string,
handler: EventListenerOrEventListenerObject
): void;
setLabel(key: string, text: string): void;
setTitle(key: string, text: string): void;
setEnabled(key: string, enabled: boolean): void;
setIcon(key: string, icon: string): void;
getActionDetails(action: string): ActionInfo | undefined;
}