@nextcloud/vue
Version:
Nextcloud vue components
120 lines (119 loc) • 3.75 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;
export {
NcCustomPickerRenderResult as N,
renderWidget as a,
registerCustomPickerElement as b,
renderCustomPickerElement as c,
isCustomPickerElementRegistered as d,
hasFullWidth as e,
destroyWidget as f,
destroyCustomPickerElement as g,
hasInteractiveView as h,
isWidgetRegistered as i,
getCustomPickerElementSize as j,
registerWidget as r
};