本文整理汇总了TypeScript中@ephox/alloy.SystemEvents.dismissRequested方法的典型用法代码示例。如果您正苦于以下问题:TypeScript SystemEvents.dismissRequested方法的具体用法?TypeScript SystemEvents.dismissRequested怎么用?TypeScript SystemEvents.dismissRequested使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类@ephox/alloy.SystemEvents
的用法示例。
在下文中一共展示了SystemEvents.dismissRequested方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: getNodeAnchor
export const setup = (editor: Editor, lazySink: () => Result<AlloyComponent, Error>, backstage: UiFactoryBackstage) => {
const contextmenu = GuiFactory.build(
InlineView.sketch({
dom: {
tag: 'div',
},
lazySink,
onEscape: () => editor.focus(),
fireDismissalEventInstead: { },
inlineBehaviours: Behaviour.derive([
AddEventsBehaviour.config('dismissContextMenu', [
AlloyEvents.run(SystemEvents.dismissRequested(), (comp, se) => {
Sandboxing.close(comp);
editor.focus();
})
])
])
}),
);
editor.on('init', () => {
editor.on('contextmenu', (e) => {
if (isNativeOverrideKeyEvent(editor, e)) {
return;
}
// Different browsers trigger the context menu from keyboards differently, so need to check both the button and target here
// Chrome: button = 0 & target = the selection range node
// Firefox: button = 0 & target = body
// IE: button = 2 & target = body
// Safari: N/A (Mac's don't expose a contextmenu keyboard shortcut)
const isTriggeredByKeyboardEvent = e.button !== 2 || e.target === editor.getBody();
const anchorSpec = isTriggeredByKeyboardEvent ? getNodeAnchor(editor) : getPointAnchor(editor, e);
const registry = editor.ui.registry.getAll();
const menuConfig = Settings.getContextMenu(editor);
// Use the event target element for mouse clicks, otherwise fallback to the current selection
const selectedElement = isTriggeredByKeyboardEvent ? editor.selection.getStart(true) : e.target as Element;
const items = generateContextMenu(registry.contextMenus, menuConfig, selectedElement);
NestedMenus.build(items, ItemResponse.CLOSE_ON_EXECUTE, backstage).map((menuData) => {
e.preventDefault();
// show the context menu, with items set to close on click
InlineView.showMenuAt(contextmenu, anchorSpec, {
menu: {
markers: MenuParts.markers('normal')
},
data: menuData
});
});
});
});
};
示例2: closeWindow
const factory = (contents: Types.Dialog.Dialog<T>, internalInitialData: T, dataValidator: Processor): Types.Dialog.DialogInstanceApi<T> => {
const initialData = validateData<T>(internalInitialData, dataValidator);
const dialogInit = {
dataValidator,
initialData,
internalDialog: contents
};
const dialogUi = renderInlineDialog<T>(
dialogInit,
{
redial: DialogManager.DialogManager.redial,
closeWindow: () => {
InlineView.hide(inlineDialog);
closeWindow(dialogUi.instanceApi);
}
},
extras.backstage, ariaAttrs
);
const inlineDialog = GuiFactory.build(InlineView.sketch({
lazySink: extras.backstage.shared.getSink,
dom: {
tag: 'div',
classes: [ ]
},
// Fires the default dismiss event.
fireDismissalEventInstead: { },
inlineBehaviours: Behaviour.derive([
AddEventsBehaviour.config('window-manager-inline-events', [
// Can't just fireDimissalEvent formCloseEvent, because it is on the parent component of the dialog
AlloyEvents.run(SystemEvents.dismissRequested(), (comp, se) => {
AlloyTriggers.emit(dialogUi.dialog, formCancelEvent);
})
])
])
}));
InlineView.showAt(
inlineDialog,
anchor,
GuiFactory.premade(dialogUi.dialog)
);
dialogUi.instanceApi.setData(initialData);
Keying.focusIn(dialogUi.dialog);
return dialogUi.instanceApi;
};