本文整理匯總了TypeScript中@ephox/agar.Guard類的典型用法代碼示例。如果您正苦於以下問題:TypeScript Guard類的具體用法?TypeScript Guard怎麽用?TypeScript Guard使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了Guard類的8個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: TinyUi
TinyLoader.setup(function (editor, onSuccess, onFailure) {
const tinyUi = TinyUi(editor);
Pipeline.async({}, [
Log.stepsAsStep('TBA', 'Image: image proportion constrains should work directly', [
tinyUi.sClickOnToolbar('click image button', 'button[aria-label="Insert/edit image"]'),
Chain.asStep({}, [
Chain.fromParent(tinyUi.cWaitForPopup('Wait for dialog', 'div[role="dialog"]'),
[
Chain.fromChains([
UiFinder.cFindIn('button.tox-browse-url'),
Mouse.cClick
]),
Chain.control(
cAssertInputValue(generalTabSelectors.width, '1'),
Guard.tryUntil('did not find width input with value 1', 10, 1000)
),
cSetInputValue(generalTabSelectors.height, '5'),
Chain.control(
cAssertInputValue(generalTabSelectors.width, '5'),
Guard.tryUntil('did not find width input with value 5', 10, 1000)
),
]
),
tinyUi.cSubmitDialog(),
Chain.inject(editor),
cAssertCleanHtml('Checking output', '<p><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="" width="5" height="5" /></p>')
])
])
], onSuccess, onFailure);
}, {
示例2:
const cFindInDialog = (selector) => Chain.control(
Chain.fromChains([
Chain.inject(TinyDom.fromDom(document.body)),
Chain.control(
UiFinder.cFindIn('[role="dialog"]'),
Guard.tryUntil('Waiting for dialog', 100, 1000)
),
UiFinder.cFindIn(selector)
]),
Guard.addLogging('Find in dialog')
);
示例3:
const cSetInputValue = (section, newValue) => Chain.control(
Chain.fromChains([
UiFinder.cFindIn(`label:contains(${section}) + div > input`),
UiControls.cSetValue(newValue)
]),
Guard.addLogging('Set input value' + newValue)
);
示例4: Theme
UnitTest.asynctest('tinymce.plugins.paste.browser.PasteSettingsTest', (success, failure) => {
Theme();
Plugin();
const cCreateInlineEditor = function (settings) {
return Chain.control(
McEditor.cFromSettings(Merger.merge(settings, {
inline: true,
base_url: '/project/tinymce/js/tinymce'
})),
Guard.addLogging('Create inline editor')
);
};
const cRemoveEditor = Chain.control(
McEditor.cRemove,
Guard.addLogging('Remove editor')
);
Pipeline.async({}, [
Chain.asStep({}, Log.chains('TBA', 'Paste: paste_as_text setting', [
cCreateInlineEditor({
paste_as_text: true,
plugins: 'paste'
}),
Chain.op(function (editor) {
Assertions.assertEq('Should be text format', 'text', editor.plugins.paste.clipboard.pasteFormat.get());
}),
cRemoveEditor
]))
], function () {
success();
}, failure);
});
示例5: from
const cResizeToPos = (sx: number, sy: number, dx: number, dy: number, delta: number = 10) => {
// Simulate moving the mouse, by making a number of movements
const numMoves = sy === dy ? Math.abs(dx - sx) / delta : Math.abs(dy - sy) / delta;
// Determine the deltas based on the number of moves to make
const deltaX = (dx - sx) / numMoves;
const deltaY = (dy - sy) / numMoves;
// Move and release the mouse
return Chain.control(
Chain.fromChains([
UiFinder.cFindIn('.tox-blocker'),
Mouse.cMouseMoveTo(sx, sy)
].concat(
Arr.range(numMoves, (count) => {
const nx = sx + count * deltaX;
const ny = sy + count * deltaY;
return Mouse.cMouseMoveTo(nx, ny);
})
).concat([
Mouse.cMouseMoveTo(dx, dy),
Mouse.cMouseUp
])
),
Guard.addLogging(`Resizing from (${sx}, ${sy}) to (${dx}, ${dy})`)
);
};
示例6: next
const cOpFromChains = (chains: Chain<any, any>[]) => Chain.control(
// TODO: Another API case.
Chain.on((value, next, die, logs) => {
Chain.pipeline([Chain.inject(value)].concat(chains), (_, newLogs) => next(Chain.wrap(value), newLogs), die, logs);
}),
Guard.addLogging('Chain operations')
);
示例7: keys
const cMergeCells = (keys) => Chain.control(
Chain.mapper((editor: any) => {
keys(editor);
editor.execCommand('mceTableMergeCells');
}),
Guard.addLogging('Merge cells')
);
示例8:
const cSubmitDialog = () => Chain.control(
NamedChain.asChain([
NamedChain.writeValue('body', Body.body()),
NamedChain.read('body', Mouse.cClickOn('.tox-button:contains("Save")')),
NamedChain.outputInput
]),
Guard.addLogging('Submit dialog')
);