@nextcloud/vue
Version:
Nextcloud vue components
118 lines (117 loc) • 3.99 kB
JavaScript
;
const logger = require("./logger-3HuiEIF6.cjs");
window._vue_richtext_widgets ??= {};
window._registerWidget ??= (id, callback, onDestroy, props) => {
registerWidget(id, callback, onDestroy, props);
};
function registerWidget(id, callback, onDestroy = () => {
}, props) {
const propsWithDefaults = {
hasInteractiveView: true,
fullWidth: false,
...props
};
if (window._vue_richtext_widgets[id]) {
logger.logger.error(`[ReferencePicker]: Widget for id ${id} already registered`);
return;
}
window._vue_richtext_widgets[id] = {
id,
callback,
onDestroy,
...propsWithDefaults
};
}
function renderWidget(el, options) {
const { richObjectType, richObject, accessible, interactive } = options;
if (richObjectType === "open-graph") {
return;
}
if (!window._vue_richtext_widgets[richObjectType]) {
logger.logger.error("Widget for rich object type " + richObjectType + " not registered");
return;
}
window._vue_richtext_widgets[richObjectType].callback(el, { richObjectType, richObject, accessible, interactive });
}
function destroyWidget(richObjectType, el) {
if (richObjectType === "open-graph") {
return;
}
if (!window._vue_richtext_widgets[richObjectType]) {
return;
}
window._vue_richtext_widgets[richObjectType].onDestroy(el);
}
function isWidgetRegistered(id) {
return !!window._vue_richtext_widgets[id];
}
function hasInteractiveView(id) {
return !!window._vue_richtext_widgets[id]?.hasInteractiveView;
}
function hasFullWidth(id) {
return !!window._vue_richtext_widgets[id]?.fullWidth;
}
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 (["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.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.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);
}
exports.NcCustomPickerRenderResult = NcCustomPickerRenderResult;
exports.destroyCustomPickerElement = destroyCustomPickerElement;
exports.destroyWidget = destroyWidget;
exports.getCustomPickerElementSize = getCustomPickerElementSize;
exports.hasFullWidth = hasFullWidth;
exports.hasInteractiveView = hasInteractiveView;
exports.isCustomPickerElementRegistered = isCustomPickerElementRegistered;
exports.isWidgetRegistered = isWidgetRegistered;
exports.registerCustomPickerElement = registerCustomPickerElement;
exports.registerWidget = registerWidget;
exports.renderCustomPickerElement = renderCustomPickerElement;
exports.renderWidget = renderWidget;
//# sourceMappingURL=customPickerElements-GyIIOHiQ.cjs.map