UNPKG

@nextcloud/vue

Version:
116 lines (115 loc) 3.93 kB
"use strict"; if (!window._vue_richtext_widgets) { window._vue_richtext_widgets = {}; } const isWidgetRegistered = (id) => { return !!window._vue_richtext_widgets[id]; }; const hasInteractiveView = (id) => { return !!window._vue_richtext_widgets[id]?.hasInteractiveView; }; const hasFullWidth = (id) => { return !!window._vue_richtext_widgets[id]?.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) => { const size = window._vue_richtext_custom_picker_elements[id]?.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;