|
|
(function() { |
|
|
|
|
|
if (!globalThis.LLuL) globalThis.LLuL = {}; |
|
|
|
|
|
const OBJ = (function (NAME) { |
|
|
|
|
|
let _r = 0; |
|
|
function to_gradio(v) { |
|
|
|
|
|
return [v.toString(), (_r++).toString()]; |
|
|
} |
|
|
|
|
|
function js2py(type, gradio_field, value) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return new Promise(resolve => { |
|
|
const callback_name = `${NAME}-${type}-${gradio_field}`; |
|
|
|
|
|
|
|
|
globalThis[callback_name] = () => { |
|
|
|
|
|
delete globalThis[callback_name]; |
|
|
|
|
|
|
|
|
const callback_after = callback_name + '_after'; |
|
|
globalThis[callback_after] = () => { |
|
|
delete globalThis[callback_after]; |
|
|
resolve(); |
|
|
}; |
|
|
|
|
|
return to_gradio(value); |
|
|
}; |
|
|
|
|
|
|
|
|
gradioApp().querySelector(`#${callback_name}_set`).click(); |
|
|
}); |
|
|
} |
|
|
|
|
|
function py2js(type, pyname, ...args) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return (args.length == 0 ? Promise.resolve() : js2py(type, pyname + '_args', JSON.stringify(args))) |
|
|
.then(() => { |
|
|
return new Promise(resolve => { |
|
|
const callback_name = `${NAME}-${type}-${pyname}`; |
|
|
|
|
|
globalThis[callback_name] = value => { |
|
|
delete globalThis[callback_name]; |
|
|
resolve(value); |
|
|
} |
|
|
|
|
|
gradioApp().querySelector(`#${callback_name}_get`).click(); |
|
|
}); |
|
|
}); |
|
|
} |
|
|
|
|
|
return { js2py, py2js } |
|
|
|
|
|
})('llul'); |
|
|
|
|
|
if (!globalThis.LLuL.js2py) globalThis.LLuL.js2py = OBJ.js2py; |
|
|
if (!globalThis.LLuL.py2js) globalThis.LLuL.py2js = OBJ.py2js; |
|
|
|
|
|
})(); |