Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
notion-enhanced / usr / lib / notion-enhanced / resources / app / main / systemMenu.js
Size: Mime:
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const electron_1 = require("electron");
const fs = require("fs-extra");
const createWindow_1 = require("./createWindow");
const config_1 = require("../config");
const notion_intl_1 = require("notion-intl");
const localizationHelper_1 = require("../helpers/localizationHelper");
const menuMessages = notion_intl_1.defineMessages({
    fileMenuTitle: {
        id: "desktopTopbar.fileMenu.title",
        defaultMessage: "File",
    },
    editMenuTitle: {
        id: "desktopTopbar.editMenu.title",
        defaultMessage: "Edit",
    },
    viewMenuTitle: {
        id: "desktopTopbar.viewMenu.title",
        defaultMessage: "View",
    },
    windowMenuTitle: {
        id: "desktopTopbar.windowMenu.title",
        defaultMessage: "Window",
    },
    helpTitle: {
        id: "desktopTopbar.helpMenu.title",
        defaultMessage: "Help",
    },
    newWindow: {
        id: "desktopTopbar.fileMenu.newWindow",
        defaultMessage: "New Window",
    },
    closeWindow: {
        id: "desktopTopbar.fileMenu.close",
        defaultMessage: "Close Window",
    },
    quit: {
        id: "desktopTopbar.fileMenu.quit",
        defaultMessage: "Exit",
    },
    undo: {
        id: "desktopTopbar.editMenu.undo",
        defaultMessage: "Undo",
    },
    redo: {
        id: "desktopTopbar.editMenu.redo",
        defaultMessage: "Redo",
    },
    cut: {
        id: "desktopTopbar.editMenu.cut",
        defaultMessage: "Cut",
    },
    copy: {
        id: "desktopTopbar.editMenu.copy",
        defaultMessage: "Copy",
    },
    paste: {
        id: "desktopTopbar.editMenu.paste",
        defaultMessage: "Paste",
    },
    selectAll: {
        id: "desktopTopbar.editMenu.selectAll",
        defaultMessage: "Select All",
    },
    startSpeaking: {
        id: "desktopTopbar.editMenu.speech.startSpeaking",
        defaultMessage: "Start Speaking",
    },
    stopSpeaking: {
        id: "desktopTopbar.editMenu.speech.stopSpeaking",
        defaultMessage: "Stop Speaking",
    },
    speech: {
        id: "desktopTopbar.editMenu.speech",
        defaultMessage: "Speech",
    },
    reload: {
        id: "desktopTopbar.viewMenu.reload",
        defaultMessage: "Reload",
    },
    togglefullscreen: {
        id: "desktopTopbar.viewMenu.togglefullscreen",
        defaultMessage: "Toggle Full Screen",
    },
    toggleDevTools: {
        id: "desktopTopbar.toggleDevTools",
        defaultMessage: "Toggle Developer Tools",
    },
    toggleWindowDevTools: {
        id: "desktopTopbar.toggleWindowDevTools",
        defaultMessage: "Toggle Window Developer Tools",
    },
    maximize: {
        id: "desktopTopbar.windowMenu.maximize",
        defaultMessage: "Maximize",
    },
    minimize: {
        id: "desktopTopbar.windowMenu.minimize",
        defaultMessage: "Minimize",
    },
    zoom: {
        id: "desktopTopbar.windowMenu.zoom",
        defaultMessage: "Zoom",
    },
    front: {
        id: "desktopTopbar.windowMenu.front",
        defaultMessage: "Front",
    },
    close: {
        id: "desktopTopbar.windowMenu.close",
        defaultMessage: "Close",
    },
    help: {
        id: "desktopTopbar.helpMenu.openHelpAndSupport",
        defaultMessage: "Open Help & Support",
    },
    reset: {
        id: "desktopTopbar.appMenu.resetAppAndClearData",
        defaultMessage: "Reset App & Clear Local Data",
    },
    about: { id: "desktopTopbar.appMenu.about", defaultMessage: "About Notion" },
    services: {
        id: "desktopTopbar.appMenu.services",
        defaultMessage: "Services",
    },
    hide: { id: "desktopTopbar.appMenu.hide", defaultMessage: "Hide Notion" },
    hideOthers: {
        id: "desktopTopbar.appMenu.hideOthers",
        defaultMessage: "Hide Others",
    },
    unhide: { id: "desktopTopbar.appMenu.unhide", defaultMessage: "Show All" },
    quitMac: { id: "desktopTopbar.appMenu.quit", defaultMessage: "Quit" },
});
function escapeAmpersand(message) {
    return message.replace(/&/g, "&&");
}
function setupSystemMenu(locale) {
    const isElectronMac = process.platform === "darwin";
    const intl = localizationHelper_1.createIntlShape(locale);
    const fileMenu = {
        role: "fileMenu",
        label: escapeAmpersand(intl.formatMessage(menuMessages.fileMenuTitle)),
        submenu: isElectronMac
            ? [
                {
                    label: escapeAmpersand(intl.formatMessage(menuMessages.newWindow)),
                    accelerator: "CmdOrCtrl+Shift+N",
                    click: () => createWindow_1.createWindow(),
                },
                {
                    role: "close",
                    label: escapeAmpersand(intl.formatMessage(menuMessages.closeWindow)),
                },
            ]
            : [
                {
                    label: escapeAmpersand(intl.formatMessage(menuMessages.newWindow)),
                    accelerator: "CmdOrCtrl+Shift+N",
                    click: () => createWindow_1.createWindow(),
                },
                {
                    role: "quit",
                    label: escapeAmpersand(intl.formatMessage(menuMessages.quit)),
                },
            ],
    };
    const editMenu = {
        role: "editMenu",
        label: escapeAmpersand(intl.formatMessage(menuMessages.editMenuTitle)),
        submenu: isElectronMac
            ? [
                {
                    role: "undo",
                    label: escapeAmpersand(intl.formatMessage(menuMessages.undo)),
                },
                {
                    role: "redo",
                    label: escapeAmpersand(intl.formatMessage(menuMessages.redo)),
                },
                { type: "separator" },
                {
                    role: "cut",
                    label: escapeAmpersand(intl.formatMessage(menuMessages.cut)),
                },
                {
                    role: "copy",
                    label: escapeAmpersand(intl.formatMessage(menuMessages.copy)),
                },
                {
                    role: "paste",
                    label: escapeAmpersand(intl.formatMessage(menuMessages.paste)),
                },
                {
                    role: "selectAll",
                    label: escapeAmpersand(intl.formatMessage(menuMessages.selectAll)),
                },
                { type: "separator" },
                {
                    label: escapeAmpersand(intl.formatMessage(menuMessages.speech)),
                    submenu: [
                        {
                            role: "startSpeaking",
                            label: escapeAmpersand(intl.formatMessage(menuMessages.startSpeaking)),
                        },
                        {
                            role: "stopSpeaking",
                            label: escapeAmpersand(intl.formatMessage(menuMessages.stopSpeaking)),
                        },
                    ],
                },
            ]
            : [
                {
                    role: "undo",
                    label: escapeAmpersand(intl.formatMessage(menuMessages.undo)),
                },
                {
                    role: "redo",
                    label: escapeAmpersand(intl.formatMessage(menuMessages.redo)),
                },
                { type: "separator" },
                {
                    role: "cut",
                    label: escapeAmpersand(intl.formatMessage(menuMessages.cut)),
                },
                {
                    role: "copy",
                    label: escapeAmpersand(intl.formatMessage(menuMessages.copy)),
                },
                {
                    role: "paste",
                    label: escapeAmpersand(intl.formatMessage(menuMessages.paste)),
                },
                { type: "separator" },
                {
                    role: "selectAll",
                    label: escapeAmpersand(intl.formatMessage(menuMessages.selectAll)),
                },
            ],
    };
    const viewMenu = {
        role: "viewMenu",
        label: escapeAmpersand(intl.formatMessage(menuMessages.viewMenuTitle)),
        submenu: [
            {
                label: escapeAmpersand(intl.formatMessage(menuMessages.reload)),
                accelerator: "CmdOrCtrl+R",
                click() {
                    const focusedWebContents = electron_1.webContents.getFocusedWebContents();
                    if (focusedWebContents) {
                        if (focusedWebContents.hostWebContents) {
                            for (const webContentsInstance of electron_1.webContents.getAllWebContents()) {
                                if (webContentsInstance.hostWebContents ===
                                    focusedWebContents.hostWebContents) {
                                    webContentsInstance.reload();
                                }
                            }
                        }
                        else {
                            focusedWebContents.reload();
                        }
                    }
                },
            },
            {
                label: escapeAmpersand(intl.formatMessage(menuMessages.toggleDevTools)),
                accelerator: isElectronMac ? "Alt+Command+I" : "Ctrl+Shift+I",
                click() {
                    let focusedWebContents = electron_1.webContents.getFocusedWebContents();
                    if (focusedWebContents) {
                        const focusedWebContentsUrl = focusedWebContents.getURL();
                        if (focusedWebContentsUrl.startsWith("file://") &&
                            focusedWebContentsUrl.endsWith("/search.html")) {
                            const notionWebviewWebContents = electron_1.webContents
                                .getAllWebContents()
                                .find(webContentsInstance => webContentsInstance.hostWebContents ===
                                focusedWebContents.hostWebContents &&
                                webContentsInstance !== focusedWebContents);
                            if (notionWebviewWebContents) {
                                focusedWebContents = notionWebviewWebContents;
                            }
                        }
                        focusedWebContents.toggleDevTools();
                    }
                },
            },
            {
                label: escapeAmpersand(intl.formatMessage(menuMessages.toggleWindowDevTools)),
                accelerator: isElectronMac ? "Shift+Alt+Command+I" : "Alt+Ctrl+Shift+I",
                visible: false,
                click(menuItem, focusedWindow) {
                    if (focusedWindow) {
                        focusedWindow.webContents.toggleDevTools();
                    }
                },
            },
            { type: "separator" },
            {
                role: "togglefullscreen",
                label: escapeAmpersand(intl.formatMessage(menuMessages.togglefullscreen)),
            },
        ],
    };
    const windowMenu = {
        role: "windowMenu",
        label: escapeAmpersand(intl.formatMessage(menuMessages.windowMenuTitle)),
        submenu: isElectronMac
            ? [
                {
                    role: "minimize",
                    label: escapeAmpersand(intl.formatMessage(menuMessages.minimize)),
                },
                {
                    role: "zoom",
                    label: escapeAmpersand(intl.formatMessage(menuMessages.zoom)),
                },
                { type: "separator" },
                {
                    role: "front",
                    label: escapeAmpersand(intl.formatMessage(menuMessages.front)),
                },
            ]
            : [
                {
                    role: "minimize",
                    label: escapeAmpersand(intl.formatMessage(menuMessages.minimize)),
                },
                {
                    label: escapeAmpersand(intl.formatMessage(menuMessages.maximize)),
                    click(item, focusedWindow) {
                        if (focusedWindow) {
                            if (focusedWindow.isMaximized()) {
                                focusedWindow.unmaximize();
                            }
                            else {
                                focusedWindow.maximize();
                            }
                        }
                    },
                },
                {
                    role: "close",
                    label: escapeAmpersand(intl.formatMessage(menuMessages.close)),
                },
            ],
    };
    const helpMenu = {
        role: "help",
        label: escapeAmpersand(intl.formatMessage(menuMessages.helpTitle)),
        submenu: [
            {
                label: escapeAmpersand(intl.formatMessage(menuMessages.help)),
                click() {
                    electron_1.shell.openExternal(config_1.default.baseURL + "/help");
                },
            },
        ],
    };
    const appMenu = {
        role: "appMenu",
        submenu: [
            {
                role: "about",
                label: escapeAmpersand(intl.formatMessage(menuMessages.about)),
            },
            { type: "separator" },
            {
                label: escapeAmpersand(intl.formatMessage(menuMessages.reset)),
                async click(item, focusedWindow) {
                    await fs.remove(electron_1.app.getPath("userData"));
                    electron_1.app.relaunch();
                    electron_1.app.exit();
                },
            },
            { type: "separator" },
            {
                role: "services",
                label: escapeAmpersand(intl.formatMessage(menuMessages.services)),
            },
            { type: "separator" },
            {
                role: "hide",
                label: escapeAmpersand(intl.formatMessage(menuMessages.hide)),
            },
            {
                role: "hideOthers",
                label: escapeAmpersand(intl.formatMessage(menuMessages.hideOthers)),
            },
            {
                role: "unhide",
                label: escapeAmpersand(intl.formatMessage(menuMessages.unhide)),
            },
            { type: "separator" },
            {
                role: "quit",
                label: escapeAmpersand(intl.formatMessage(menuMessages.quitMac)),
            },
        ],
    };
    const template = [
        fileMenu,
        editMenu,
        viewMenu,
        windowMenu,
        helpMenu,
    ];
    if (isElectronMac) {
        template.unshift(appMenu);
    }
    const menu = electron_1.Menu.buildFromTemplate(template);
    electron_1.Menu.setApplicationMenu(menu);
}
exports.setupSystemMenu = setupSystemMenu;
//# sourceMappingURL=systemMenu.js.map

//notion-enhancer
require('notion-enhancer/pkg/loader.js')(__filename, exports);