dockview-core
Version:
Zero dependency layout manager supporting tabs, groups, grids and splitviews for vanilla TypeScript
31 lines (30 loc) • 1.55 kB
JavaScript
/** Where a drop position lands, phrased for the *edge prompt*. */
function edgeWhere(position, target) {
return position === 'center'
? `Tab into ${target}`
: `Split ${position} of ${target}`;
}
/** Where a drop position landed, phrased for the *commit* sentence. */
function committedWhere(position, target) {
return position === 'center'
? `docked into ${target}`
: `split ${position} of ${target}`;
}
export const DEFAULT_MESSAGES = {
panelOpened: (title) => `${title} opened`,
panelClosed: (title) => `${title} closed`,
groupMaximized: (title) => `${title} maximized`,
groupRestored: (title) => `${title} restored`,
groupFloated: (title) => `${title} floated`,
groupDocked: (title) => `${title} docked`,
groupPoppedOut: (title) => `${title} opened in a new window`,
movePickTarget: (source, target, current, total) => `Moving ${source}. Target ${target}, ${current} of ${total}. Enter to choose where, Escape to cancel.`,
movePickEdge: (position, target) => `${edgeWhere(position, target)}. Arrows to change, Enter to confirm, Escape to go back.`,
moveCommitted: (source, target, position) => `${source} ${committedWhere(position, target)}.`,
moveCancelled: () => `Move cancelled.`,
moveNotAllowed: () => `That move is not allowed.`,
};
/** Merge an app's partial overrides over the English defaults. */
export function resolveMessages(overrides) {
return overrides ? Object.assign(Object.assign({}, DEFAULT_MESSAGES), overrides) : DEFAULT_MESSAGES;
}