
import { registerCss } from '../../../../../../../css.js';
import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
import * as notificationsActions from './media/notificationsActions.css';
import { localize } from '../../../../nls.js';
import { Action } from '../../../../base/common/actions.js';
import { CLEAR_NOTIFICATION, CLEAR_ALL_NOTIFICATIONS, TOGGLE_DO_NOT_DISTURB_MODE, TOGGLE_DO_NOT_DISTURB_MODE_BY_SOURCE, HIDE_NOTIFICATIONS_CENTER, EXPAND_NOTIFICATION, COLLAPSE_NOTIFICATION } from './notificationsCommands.js';
import { ICommandService } from '../../../../platform/commands/common/commands.service.js';
import { IClipboardService } from '../../../../platform/clipboard/common/clipboardService.service.js';
import { Codicon } from '../../../../base/common/codicons.js';
import { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';
import { ThemeIcon } from '../../../../base/common/themables.js';

registerCss(notificationsActions);
const clearIcon = registerIcon("notifications-clear", Codicon.close, ( localize(3530, "Icon for the clear action in notifications.")));
const clearAllIcon = registerIcon("notifications-clear-all", Codicon.clearAll, ( localize(3531, "Icon for the clear all action in notifications.")));
const hideIcon = registerIcon("notifications-hide", Codicon.chevronDown, ( localize(3532, "Icon for the hide action in notifications.")));
const expandIcon = registerIcon("notifications-expand", Codicon.chevronUp, ( localize(3533, "Icon for the expand action in notifications.")));
const collapseIcon = registerIcon("notifications-collapse", Codicon.chevronDown, ( localize(3534, "Icon for the collapse action in notifications.")));
const configureIcon = registerIcon("notifications-configure", Codicon.gear, ( localize(3535, "Icon for the configure action in notifications.")));
const doNotDisturbIcon = registerIcon("notifications-do-not-disturb", Codicon.bellSlash, ( localize(3536, "Icon for the mute all action in notifications.")));
let ClearNotificationAction = class ClearNotificationAction extends Action {
    static {
        this.ID = CLEAR_NOTIFICATION;
    }
    static {
        this.LABEL = ( localize(3537, "Clear Notification"));
    }
    constructor(id, label, commandService) {
        super(id, label, ThemeIcon.asClassName(clearIcon));
        this.commandService = commandService;
    }
    async run(notification) {
        this.commandService.executeCommand(CLEAR_NOTIFICATION, notification);
    }
};
ClearNotificationAction = ( __decorate([( __param(2, ICommandService))], ClearNotificationAction));
let ClearAllNotificationsAction = class ClearAllNotificationsAction extends Action {
    static {
        this.ID = CLEAR_ALL_NOTIFICATIONS;
    }
    static {
        this.LABEL = ( localize(3538, "Clear All Notifications"));
    }
    constructor(id, label, commandService) {
        super(id, label, ThemeIcon.asClassName(clearAllIcon));
        this.commandService = commandService;
    }
    async run() {
        this.commandService.executeCommand(CLEAR_ALL_NOTIFICATIONS);
    }
};
ClearAllNotificationsAction = ( __decorate([( __param(2, ICommandService))], ClearAllNotificationsAction));
let ToggleDoNotDisturbAction = class ToggleDoNotDisturbAction extends Action {
    static {
        this.ID = TOGGLE_DO_NOT_DISTURB_MODE;
    }
    static {
        this.LABEL = ( localize(3539, "Toggle Do Not Disturb Mode"));
    }
    constructor(id, label, commandService) {
        super(id, label, ThemeIcon.asClassName(doNotDisturbIcon));
        this.commandService = commandService;
    }
    async run() {
        this.commandService.executeCommand(TOGGLE_DO_NOT_DISTURB_MODE);
    }
};
ToggleDoNotDisturbAction = ( __decorate([( __param(2, ICommandService))], ToggleDoNotDisturbAction));
let ToggleDoNotDisturbBySourceAction = class ToggleDoNotDisturbBySourceAction extends Action {
    static {
        this.ID = TOGGLE_DO_NOT_DISTURB_MODE_BY_SOURCE;
    }
    static {
        this.LABEL = ( localize(3540, "Toggle Do Not Disturb Mode By Source..."));
    }
    constructor(id, label, commandService) {
        super(id, label);
        this.commandService = commandService;
    }
    async run() {
        this.commandService.executeCommand(TOGGLE_DO_NOT_DISTURB_MODE_BY_SOURCE);
    }
};
ToggleDoNotDisturbBySourceAction = ( __decorate([( __param(2, ICommandService))], ToggleDoNotDisturbBySourceAction));
class ConfigureDoNotDisturbAction extends Action {
    static {
        this.ID = "workbench.action.configureDoNotDisturbMode";
    }
    static {
        this.LABEL = ( localize(3541, "Configure Do Not Disturb..."));
    }
    constructor(id, label) {
        super(id, label, ThemeIcon.asClassName(doNotDisturbIcon));
    }
}
let HideNotificationsCenterAction = class HideNotificationsCenterAction extends Action {
    static {
        this.ID = HIDE_NOTIFICATIONS_CENTER;
    }
    static {
        this.LABEL = ( localize(3542, "Hide Notifications"));
    }
    constructor(id, label, commandService) {
        super(id, label, ThemeIcon.asClassName(hideIcon));
        this.commandService = commandService;
    }
    async run() {
        this.commandService.executeCommand(HIDE_NOTIFICATIONS_CENTER);
    }
};
HideNotificationsCenterAction = ( __decorate([( __param(2, ICommandService))], HideNotificationsCenterAction));
let ExpandNotificationAction = class ExpandNotificationAction extends Action {
    static {
        this.ID = EXPAND_NOTIFICATION;
    }
    static {
        this.LABEL = ( localize(3543, "Expand Notification"));
    }
    constructor(id, label, commandService) {
        super(id, label, ThemeIcon.asClassName(expandIcon));
        this.commandService = commandService;
    }
    async run(notification) {
        this.commandService.executeCommand(EXPAND_NOTIFICATION, notification);
    }
};
ExpandNotificationAction = ( __decorate([( __param(2, ICommandService))], ExpandNotificationAction));
let CollapseNotificationAction = class CollapseNotificationAction extends Action {
    static {
        this.ID = COLLAPSE_NOTIFICATION;
    }
    static {
        this.LABEL = ( localize(3544, "Collapse Notification"));
    }
    constructor(id, label, commandService) {
        super(id, label, ThemeIcon.asClassName(collapseIcon));
        this.commandService = commandService;
    }
    async run(notification) {
        this.commandService.executeCommand(COLLAPSE_NOTIFICATION, notification);
    }
};
CollapseNotificationAction = ( __decorate([( __param(2, ICommandService))], CollapseNotificationAction));
class ConfigureNotificationAction extends Action {
    static {
        this.ID = "workbench.action.configureNotification";
    }
    static {
        this.LABEL = ( localize(3545, "More Actions..."));
    }
    constructor(id, label, notification) {
        super(id, label, ThemeIcon.asClassName(configureIcon));
        this.notification = notification;
    }
}
let CopyNotificationMessageAction = class CopyNotificationMessageAction extends Action {
    static {
        this.ID = "workbench.action.copyNotificationMessage";
    }
    static {
        this.LABEL = ( localize(3546, "Copy Text"));
    }
    constructor(id, label, clipboardService) {
        super(id, label);
        this.clipboardService = clipboardService;
    }
    run(notification) {
        return this.clipboardService.writeText(notification.message.raw);
    }
};
CopyNotificationMessageAction = ( __decorate([( __param(2, IClipboardService))], CopyNotificationMessageAction));

export { ClearAllNotificationsAction, ClearNotificationAction, CollapseNotificationAction, ConfigureDoNotDisturbAction, ConfigureNotificationAction, CopyNotificationMessageAction, ExpandNotificationAction, HideNotificationsCenterAction, ToggleDoNotDisturbAction, ToggleDoNotDisturbBySourceAction };
