Как создать плагин

1. Создайте файл script-name.vue.

2. Добавьте в файл контент как ниже:

<!--
PluginName: __SCRIPT_NAME__
PluginUrl: __URL_WHERE_OTHER_USERS_CAN_DOWNLOAD_THE_SCRIPT__
-->


<!-- Libraries (if need) -->
<script src="__URL_OF_LIBRARY_JS_FILE__"></script>


<!-- Main Script -->
<script>

// On Key Down
ioctopus.$on("keydown", e => {

	// Alt + Shift + N
	if (e.altKey && e.shiftKey && e.code === "KeyN") {

		// Get Selected Branches
		const selectedBranches = ioctopus.getSelectedBranches();

		// Each branches
		for (let branch of selectedBranches) {

			// Change the branch content
			let text = branch.getText();
			
			// Change the text as you want
			// (you can use html)...
			text = `<span class="my-style">${text}</span>`;

			branch.setText(text);
		}
	}
});
</script>


<!-- Styles -->
<style>
.my-style {
	color: green;
}
</style>

ioctopus - это главный объект в ментальной карте

Главные события

ioctopus.$on('EVENT_NAME', callback);

Доступные события:

  • keydown
  • keypress
  • keyup
  • context-menu
  • branch-map-data (при изменении данных ветки)

Контекстное меню

// On Context Menu
ioctopus.$on('context-menu', contextMenu => {

	// Add to the Context Menu new Button
	contextMenu.add({
		label: "Button text", // Button Text
		icon: "fas fa-list-ul", // Button Icon
		keycode: "Alt+Shift+L", // Dysplayed prompt
		click: () => { // Button action
			// Code running on click
		},
		href: "https://...", // Button url (when no Button action)
		target: "_blank", // Open Button url in new window (tab)
	});
});

Где мне взять иконки?

Отсюда fontawesome.com.
Например, скопировать этот код с этой страницы.

Ветки

Получить ветку по id

const branch = ioctopus.getBranchById(ID);

Получить выбранную ветку:

const selectedBranches = ioctopus.getSelectedBranches();

Получить текст ветки: Настроить текст ветки: Добавить дочернюю ветку:
branch.addChild({
	content: {
		text: "My new branch",
	}
});

Показать/спрятать "Загрузка..."

branch.loading();
branch.loadingStop();

Добавить кнопку в ветку:

branch.addButton('buttonName', {
	icon: 'fa-equals fas',
	title: 'Title on hover',
	label: 'Button label',
	click: () => {
		console.log('Button pressed')
	},
})

Где мне взять иконки?

Отсюда fontawesome.com.
Например, скопировать этот код с этой страницы.

Удалить кнопку

branch.removeButton('buttonName')

При изменение данных ветки

ioctopus.$on('branch-map-data', ({ $branch, mapData }) => {
	// ...
});

Выделение

Подсчет выделенных элементов:

ioctopus.selectedCount

Выбранные элементы

let selectedElementsArray = ioctopus.getSelected();

Выбор элементов

Чтобы дать пользователям возможность выбрать элемент (ветку), используйте следующее:

Запустите режим выбора:

ioctopus.startPicking($branch => {
	ioctopus.stopPicking();
	console.log('$branch', $branch);
});

Завершите режим выбора:

ioctopus.stopPicking();

Меню

Как добавить кнопку в меню:

// Menubar
ioctopus.addButtonToMenubar({
	to: 'tools',
	button: {
		label: 'Button label',
		icon: 'fas fa-calendar-alt', // Font Awesome
		click() {
			// ...
		},
	},
});

Диалоги

Открыть диалог:

ioctopus.openDialog({
	header: 'Header of dialog',

	// Vue Component
	component: {
		template: `<p>Content</p>`,
	}

}).then(dialog => {
	//...
});

Закрыть диалог

dialog.close();

Отключение шорткодов при вводе текста

При фокусе на поле:

ioctopus.onFocus();

После снятия фокуса с поля:

ioctopus.onBlur();

Пример:

ioctopus.openDialog({
	header: 'Header of dialog',

	// Vue Component
	component: {
		methods: {
			
			onFocus() {
				ioctopus.onFocus();
			},


			onBlur() {
				ioctopus.onBlur();
			},
		},
		template: `<input @focus="onFocus" @blur="onBlur">`,
	}

});

Сохранить файл

ioctopus.save();

Хотите больше функционала?

Напишите нам info@mind-map-online.ru.

Комментарии