export class ImageManager extends Component {
setup() {
-
// Options
this.uploadedTo = this.$opts.uploadedTo;
this.resetState();
this.setupListeners();
-
- window.ImageManager = this;
}
setupListeners() {
actionInsertImage() {
const cursorPos = this.cm.getCursor('from');
- window.ImageManager.show(image => {
+ /** @type {ImageManager} **/
+ const imageManager = window.$components.first('image-manager');
+ imageManager.show(image => {
const imageUrl = image.thumbs.display || image.url;
let selectedText = this.cm.getSelection();
let newText = "[](" + image.url + ")";
actionShowImageManager() {
const cursorPos = this.cm.getCursor('from');
- window.ImageManager.show(image => {
+ /** @type {ImageManager} **/
+ const imageManager = window.$components.first('image-manager');
+ imageManager.show(image => {
this.insertDrawing(image, cursorPos);
}, 'drawio');
}
// Show the popup link selector and insert a link when finished
actionShowLinkSelector() {
const cursorPos = this.cm.getCursor('from');
- window.EntitySelectorPopup.show(entity => {
+ /** @type {EntitySelectorPopup} **/
+ const selector = window.$components.first('entity-selector-popup');
+ selector.show(entity => {
let selectedText = this.cm.getSelection() || entity.name;
let newText = `[${selectedText}](${entity.link})`;
this.cm.focus();
// field_name, url, type, win
if (meta.filetype === 'file') {
- window.EntitySelectorPopup.show(entity => {
+ /** @type {EntitySelectorPopup} **/
+ const selector = window.$components.first('entity-selector-popup');
+ selector.show(entity => {
callback(entity.link, {
text: entity.name,
title: entity.name,
if (meta.filetype === 'image') {
// Show image manager
- window.ImageManager.show(function (image) {
+ /** @type {ImageManager} **/
+ const imageManager = window.$components.first('image-manager');
+ imageManager.show(function (image) {
callback(image.url, {alt: image.name});
}, 'gallery');
}
function showDrawingManager(mceEditor, selectedNode = null) {
pageEditor = mceEditor;
currentNode = selectedNode;
- // Show image manager
- window.ImageManager.show(function (image) {
+
+ /** @type {ImageManager} **/
+ const imageManager = window.$components.first('image-manager');
+ imageManager.show(function (image) {
if (selectedNode) {
const imgElem = selectedNode.querySelector('img');
pageEditor.undoManager.transact(function () {
* @param {String} url
*/
function register(editor, url) {
-
// Custom Image picker button
editor.ui.registry.addButton('imagemanager-insert', {
title: 'Insert image',
icon: 'image',
tooltip: 'Insert image',
onAction() {
- window.ImageManager.show(function (image) {
+ /** @type {ImageManager} **/
+ const imageManager = window.$components.first('image-manager');
+ imageManager.show(function (image) {
const imageUrl = image.thumbs.display || image.url;
let html = `<a href="${image.url}" target="_blank">`;
html += `<img src="${imageUrl}" alt="${image.name}">`;