本文整理匯總了TypeScript中@ephox/alloy.Attachment類的典型用法代碼示例。如果您正苦於以下問題:TypeScript Attachment類的具體用法?TypeScript Attachment怎麽用?TypeScript Attachment使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了Attachment類的8個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: function
const unload = function () {
TestStyles.removeStyles();
Attachment.detachSystem(realm.system());
};
示例2: function
const unload = function () {
Remove.remove(iframe);
Attachment.detachSystem(realm.system());
};
示例3: f
Pipeline.async({}, f(doc, body, gui, component, store), function () {
Attachment.detachSystem(gui);
success();
}, function (e) {
示例4: function
const setup = function (info, onSuccess, onFailure) {
/* This test is going to create a toolbar with both list items on it */
const alloy = Gui.create();
Attachment.attachSystem(info.container, alloy);
const toolbar = GuiFactory.build({
dom: {
tag: 'div',
classes: [ 'test-toolbar' ]
},
behaviours: Behaviour.derive([
Replacing.config({ })
])
});
const socket = GuiFactory.build({
dom: {
tag: 'div',
classes: [ 'test-socket' ]
}
});
alloy.add(toolbar);
alloy.add(socket);
const realm = {
system: Fun.constant(alloy),
socket: Fun.constant(socket)
};
ThemeManager.add(name, function (editor) {
return {
renderUI (args) {
editor.fire('SkinLoaded');
return {
iframeContainer: socket.element().dom(),
editorContainer: alloy.element().dom()
};
}
};
});
return {
use (f) {
TinyLoader.setup(function (editor, onS, onF) {
const features = Features.setup(realm, editor);
FormatChangers.init(realm, editor);
const apis = TinyApis(editor);
const buttons = { };
Arr.each(info.items, function (item) {
// For each item in the toolbar, make a lookup
buttons[item] = Memento.record(features[item].sketch());
});
const toolbarItems = Arr.map(info.items, function (item) {
return buttons[item].asSpec();
});
Replacing.set(toolbar, toolbarItems);
f(realm, apis, toolbar, socket, buttons, onS, onF);
}, {
theme: name
}, onSuccess, onFailure);
}
};
};
示例5: loadIframeSkin
const render = (editor: Editor, uiComponents: RenderUiComponents, rawUiConfig: RenderUiConfig, backstage: UiFactoryBackstage, args: RenderArgs): ModeRenderInfo => {
loadIframeSkin(editor);
Attachment.attachSystemAfter(Element.fromDom(args.targetNode), uiComponents.mothership);
Attachment.attachSystem(Body.body(), uiComponents.uiMothership);
editor.on('init', () => {
OuterContainer.setToolbar(
uiComponents.outerContainer,
identifyButtons(editor, rawUiConfig, {backstage}, Option.none())
);
OuterContainer.setMenubar(
uiComponents.outerContainer,
identifyMenus(editor, rawUiConfig)
);
OuterContainer.setSidebar(
uiComponents.outerContainer,
rawUiConfig.sidebar
);
// Force an update of the ui components disabled states if in readonly mode
if (editor.readonly) {
handleSwitchMode(uiComponents)({mode: 'readonly'});
}
setupEvents(editor);
});
const socket = OuterContainer.getSocket(uiComponents.outerContainer).getOrDie('Could not find expected socket element');
editor.on('SwitchMode', handleSwitchMode(uiComponents));
if (Settings.isReadOnly(editor)) {
editor.setMode('readonly');
}
editor.addCommand('ToggleSidebar', (ui: boolean, value: string) => {
OuterContainer.toggleSidebar(uiComponents.outerContainer, value);
editor.fire('ToggleSidebar');
});
editor.addQueryValueHandler('ToggleSidebar', () => {
return OuterContainer.whichSidebar(uiComponents.outerContainer);
});
const drawer = Settings.getToolbarDrawer(editor);
const refreshDrawer = () => {
const toolbar = OuterContainer.getToolbar(uiComponents.outerContainer);
toolbar.each(SplitToolbar.refresh);
};
if (drawer === Settings.ToolbarDrawer.sliding || drawer === Settings.ToolbarDrawer.floating) {
editor.on('ResizeContent', refreshDrawer);
}
return {
iframeContainer: socket.element().dom(),
editorContainer: uiComponents.outerContainer.element().dom(),
};
};
示例6:
editor.on('detach', () => {
Attachment.detachSystem(mothership);
Attachment.detachSystem(uiMothership);
mothership.destroy();
uiMothership.destroy();
});
示例7: function
const renderUI = function (args) {
const cssUrls = CssUrls.derive(editor);
if (Settings.isSkinDisabled(editor) === false) {
editor.contentCSS.push(cssUrls.content);
DOMUtils.DOM.styleSheetLoader.load(cssUrls.ui, SkinLoaded.fireSkinLoaded(editor));
} else {
SkinLoaded.fireSkinLoaded(editor)();
}
const doScrollIntoView = function () {
editor.fire('scrollIntoView');
};
const wrapper = Element.fromTag('div');
const realm = PlatformDetection.detect().os.isAndroid() ? AndroidRealm(doScrollIntoView) : IosRealm(doScrollIntoView);
const original = Element.fromDom(args.targetNode);
Insert.after(original, wrapper);
Attachment.attachSystem(wrapper, realm.system());
const findFocusIn = function (elem) {
return Focus.search(elem).bind(function (focused) {
return realm.system().getByDom(focused).toOption();
});
};
const outerWindow = args.targetNode.ownerDocument.defaultView;
const orientation = Orientation.onChange(outerWindow, {
onChange () {
const alloy = realm.system();
alloy.broadcastOn([ TinyChannels.orientationChanged() ], { width: Orientation.getActualWidth(outerWindow) });
},
onReady: Fun.noop
});
const setReadOnly = function (dynamicGroup, readOnlyGroups, mainGroups, ro) {
if (ro === false) {
editor.selection.collapse();
}
const toolbars = configureToolbar(dynamicGroup, readOnlyGroups, mainGroups);
realm.setToolbarGroups(ro === true ? toolbars.readOnly : toolbars.main);
editor.setMode(ro === true ? 'readonly' : 'design');
editor.fire(ro === true ? READING() : EDITING());
realm.updateMode(ro);
};
const configureToolbar = function (dynamicGroup, readOnlyGroups, mainGroups) {
const dynamic = dynamicGroup.get();
const toolbars = {
readOnly: dynamic.backToMask.concat(readOnlyGroups.get()),
main: dynamic.backToMask.concat(mainGroups.get())
};
if (Settings.readOnlyOnInit(editor)) {
toolbars.readOnly = dynamic.backToMask.concat(readOnlyGroups.get());
toolbars.main = dynamic.backToReadOnly.concat(mainGroups.get());
}
return toolbars;
};
const bindHandler = function (label, handler) {
editor.on(label, handler);
return {
unbind () {
editor.off(label);
}
};
};
editor.on('init', function () {
realm.init({
editor: {
getFrame () {
return Element.fromDom(editor.contentAreaContainer.querySelector('iframe'));
},
onDomChanged () {
return {
unbind: Fun.noop
};
},
onToReading (handler) {
return bindHandler(READING(), handler);
},
onToEditing (handler) {
return bindHandler(EDITING(), handler);
},
onScrollToCursor (handler) {
editor.on('scrollIntoView', function (tinyEvent) {
handler(tinyEvent);
});
const unbind = function () {
editor.off('scrollIntoView');
orientation.destroy();
};
//.........這裏部分代碼省略.........
示例8: function
UnitTest.asynctest('Browser Test: ui.ButtonsTest', function () {
const success = arguments[arguments.length - 2];
const failure = arguments[arguments.length - 1];
/*
* PURPOSE
*
* There are three buttons. Two have toggling, and one toggling button has a custom action.
* Ensure that they all fire the right actions and get updated appropriately based on broadcasts.
*/
const realm = IosRealm(Fun.noop);
const body = Body.body();
Attachment.attachSystem(body, realm.system());
// Make toolbar appear
Class.add(realm.system().element(), 'tinymce-mobile-fullscreen-maximized');
const doc = Traverse.owner(body);
TestStyles.addStyles();
const unload = function () {
TestStyles.removeStyles();
Attachment.detachSystem(realm.system());
};
/* The test editor puts execCommand and insertContent calls into the store */
const tEditor = TestEditor();
const memAlpha = Memento.record(
Buttons.forToolbarCommand(tEditor.editor(), 'alpha')
);
const memBeta = Memento.record(
Buttons.forToolbarStateCommand(tEditor.editor(), 'beta')
);
const memGamma = Memento.record(
Buttons.forToolbarStateAction(tEditor.editor(), 'gamma-class', 'gamma-query', function () {
tEditor.adder('gamma-action')();
})
);
const sClickAlpha = TestUi.sClickComponent(realm, memAlpha);
const sClickBeta = TestUi.sClickComponent(realm, memBeta);
const sClickGamma = TestUi.sClickComponent(realm, memGamma);
const sCheckComponent = function (label, state) {
return function (memento) {
return TestUi.sWaitForToggledState(label, state, realm, memento);
};
};
realm.setToolbarGroups([
{
label: 'group1',
items: [
memAlpha.asSpec(),
memBeta.asSpec(),
memGamma.asSpec()
]
}
]);
/*
* Alpha has no toggling, so just check that when the user clicks on the button, the
* editor fires execCommand with alpha
*/
const sTestAlpha = GeneralSteps.sequence([
tEditor.sAssertEq('Initially empty', [ ]),
sClickAlpha,
tEditor.sAssertEq('After clicking on alpha', [
{
method: 'execCommand',
data: {
alpha: undefined
}
}
]),
tEditor.sClear
]);
/*
* Beta has toggling, so check:
* - when the user clicks on the button, execCommand is fired
* - when the format change is broadcast, the toggled state changes
*/
const sTestBeta = GeneralSteps.sequence([
tEditor.sAssertEq('before beta, store is empty', [ ]),
sClickBeta,
tEditor.sAssertEq('After clicking on beta', [
{
method: 'execCommand',
data: {
beta: undefined
}
}
]),
//.........這裏部分代碼省略.........