@nextcloud/vue
Version:
Nextcloud vue components
119 lines (118 loc) • 4.05 kB
JavaScript
;
if (!window._vue_richtext_widgets) {
window._vue_richtext_widgets = {};
}
const isWidgetRegistered = (id) => {
return !!window._vue_richtext_widgets[id];
};
const hasInteractiveView = (id) => {
var _a;
return !!((_a = window._vue_richtext_widgets[id]) == null ? void 0 : _a.hasInteractiveView);
};
const hasFullWidth = (id) => {
var _a;
return !!((_a = window._vue_richtext_widgets[id]) == null ? void 0 : _a.fullWidth);
};
const registerWidget = (id, callback, onDestroy = (el) => {
}, props) => {
const propsWithDefaults = {
hasInteractiveView: true,
fullWidth: false,
...props
};
if (window._vue_richtext_widgets[id]) {
console.error("Widget for id " + id + " already registered");
return;
}
window._vue_richtext_widgets[id] = {
id,
callback,
onDestroy,
...propsWithDefaults
};
};
const renderWidget = (el, { richObjectType, richObject, accessible, interactive }) => {
if (richObjectType === "open-graph") {
return;
}
if (!window._vue_richtext_widgets[richObjectType]) {
console.error("Widget for rich object type " + richObjectType + " not registered");
return;
}
window._vue_richtext_widgets[richObjectType].callback(el, { richObjectType, richObject, accessible, interactive });
};
const destroyWidget = (richObjectType, el) => {
if (richObjectType === "open-graph") {
return;
}
if (!window._vue_richtext_widgets[richObjectType]) {
return;
}
window._vue_richtext_widgets[richObjectType].onDestroy(el);
};
window._registerWidget = (id, callback, onDestroy, props) => {
registerWidget(id, callback, onDestroy, props);
};
if (!window._vue_richtext_custom_picker_elements) {
window._vue_richtext_custom_picker_elements = {};
}
class NcCustomPickerRenderResult {
/**
* @param {HTMLElement} element The HTML element
* @param {object} object The object
*/
constructor(element, object) {
this.element = element;
this.object = object;
}
}
const isCustomPickerElementRegistered = (id) => {
return !!window._vue_richtext_custom_picker_elements[id];
};
const getCustomPickerElementSize = (id) => {
var _a;
const size = (_a = window._vue_richtext_custom_picker_elements[id]) == null ? void 0 : _a.size;
if (["small", "normal", "large", "full"].includes(size)) {
return size;
}
return null;
};
const registerCustomPickerElement = (id, callback, onDestroy = (el) => {
}, size = "large") => {
if (window._vue_richtext_custom_picker_elements[id]) {
console.error("Custom reference picker element for id " + id + " already registered");
return;
}
window._vue_richtext_custom_picker_elements[id] = {
id,
callback,
onDestroy,
size
};
};
const renderCustomPickerElement = (el, { providerId, accessible }) => {
if (!window._vue_richtext_custom_picker_elements[providerId]) {
console.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 });
};
const destroyCustomPickerElement = (providerId, el, renderResult) => {
if (!window._vue_richtext_custom_picker_elements[providerId]) {
return;
}
window._vue_richtext_custom_picker_elements[providerId].onDestroy(el, renderResult);
};
window._registerCustomPickerElement = registerCustomPickerElement;
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;