@nextcloud/vue
Version:
Nextcloud vue components
62 lines (61 loc) • 1.99 kB
JavaScript
import { l as logger } from "./logger.mjs";
window._vue_richtext_custom_picker_elements ??= {};
window._registerCustomPickerElement ??= registerCustomPickerElement;
class NcCustomPickerRenderResult {
element;
object;
/**
* @param element - The HTML element
* @param object - The object
*/
constructor(element, object) {
this.element = element;
this.object = object;
}
}
function isCustomPickerElementRegistered(id) {
return !!window._vue_richtext_custom_picker_elements[id];
}
function getCustomPickerElementSize(id) {
const size = window._vue_richtext_custom_picker_elements[id]?.size;
if (size && ["small", "normal", "large", "full"].includes(size)) {
return size;
}
return null;
}
function registerCustomPickerElement(id, callback, onDestroy = () => {
}, size = "large") {
if (window._vue_richtext_custom_picker_elements[id]) {
logger.error(`Custom reference picker element for id ${id} already registered`);
return;
}
window._vue_richtext_custom_picker_elements[id] = {
id,
callback,
onDestroy,
size
};
}
function renderCustomPickerElement(el, options) {
const { providerId, accessible } = options;
if (!window._vue_richtext_custom_picker_elements[providerId]) {
logger.error(`Custom reference picker element for reference provider ID ${providerId} not registered`);
return;
}
return window._vue_richtext_custom_picker_elements[providerId].callback(el, { providerId, accessible });
}
function destroyCustomPickerElement(providerId, el, renderResult) {
if (!window._vue_richtext_custom_picker_elements[providerId]) {
return;
}
window._vue_richtext_custom_picker_elements[providerId].onDestroy(el, renderResult);
}
export {
NcCustomPickerRenderResult as N,
renderCustomPickerElement as a,
destroyCustomPickerElement as d,
getCustomPickerElementSize as g,
isCustomPickerElementRegistered as i,
registerCustomPickerElement as r
};
//# sourceMappingURL=customPickerElements.mjs.map