@ui-tars/operator-browser
Version:
Native-browser operator for UI-TARS
140 lines (139 loc) • 3.63 kB
JavaScript
/**
* Copyright (c) 2025 Bytedance, Inc. and its affiliates.
* SPDX-License-Identifier: Apache-2.0
*/
;
var __webpack_require__ = {};
(()=>{
__webpack_require__.n = (module)=>{
var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
__webpack_require__.d(getter, {
a: getter
});
return getter;
};
})();
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
shortcuts: ()=>shortcuts_shortcuts
});
const external_os_namespaceObject = require("os");
var external_os_default = /*#__PURE__*/ __webpack_require__.n(external_os_namespaceObject);
function isMacChrome(browser) {
return 'darwin' === external_os_default().platform() && 'chrome' === browser;
}
function delay(ms) {
return new Promise((resolve)=>setTimeout(resolve, ms));
}
const ShortcutsMap = new Map([
[
'Meta+KeyA',
{
key: 'KeyA',
commands: 'SelectAll'
}
],
[
'Meta+KeyX',
{
key: 'KeyX',
commands: 'Cut'
}
],
[
'Meta+KeyC',
{
key: 'KeyC',
commands: 'Copy'
}
],
[
'Meta+KeyV',
{
key: 'KeyV',
commands: 'Paste'
}
],
[
'Meta+KeyZ',
{
key: 'KeyZ',
commands: 'Undo'
}
],
[
'Meta+KeyY',
{
key: 'KeyY',
commands: 'Redo'
}
],
[
'Meta+Shift+KeyZ',
{
key: 'KeyZ',
commands: 'Redo'
}
],
[
'Shift+Meta+KeyZ',
{
key: 'KeyZ',
commands: 'Redo'
}
]
]);
async function shortcuts_shortcuts(page, shortcuts, browser) {
if (1 === shortcuts.length) {
await page.keyboard.down(shortcuts[0]);
await delay(100);
await page.keyboard.up(shortcuts[0]);
return;
}
if (isMacChrome(browser)) {
const matched = ShortcutsMap.get(shortcuts.join('+'));
if (matched) {
await page.keyboard.down(matched.key, {
commands: [
matched.commands
]
});
await delay(100);
await page.keyboard.up(matched.key);
return;
}
}
for (const key of shortcuts)await page.keyboard.down(key);
await delay(100);
for (const key of shortcuts.reverse())await page.keyboard.up(key);
}
exports.shortcuts = __webpack_exports__.shortcuts;
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
"shortcuts"
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});
//# sourceMappingURL=shortcuts.js.map