mind-elixir 5.11.1-beta.2 → 5.11.1-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/readme/ru.md DELETED
@@ -1,435 +0,0 @@
1
- <p align="center">
2
- <a href="https://docs.mind-elixir.com" target="_blank" rel="noopener noreferrer">
3
- <img width="150" src="https://raw.githubusercontent.com/ssshooter/mind-elixir-core/master/images/logo2.png" alt="mindelixir logo2">
4
- </a>
5
- <h1 align="center">Mind Elixir</h1>
6
- </p>
7
-
8
- <p align="center">
9
- <a href="https://trendshift.io/repositories/13049" target="_blank"><img src="https://trendshift.io/api/badge/repositories/13049" alt="SSShooter%2Fmind-elixir-core | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
10
- </p>
11
-
12
- <p align="center">
13
- <a href="https://www.npmjs.com/package/mind-elixir">
14
- <img src="https://img.shields.io/npm/v/mind-elixir" alt="version">
15
- </a>
16
- <a href="https://github.com/ssshooter/mind-elixir-core/blob/master/LICENSE">
17
- <img src="https://img.shields.io/npm/l/mind-elixir" alt="license">
18
- </a>
19
- <a href="https://app.codacy.com/gh/ssshooter/mind-elixir-core?utm_source=github.com&utm_medium=referral&utm_content=ssshooter/mind-elixir-core&utm_campaign=Badge_Grade_Settings">
20
- <img src="https://api.codacy.com/project/badge/Grade/09fadec5bf094886b30cea6aabf3a88b" alt="code quality">
21
- </a>
22
- <a href="https://bundlephobia.com/result?p=mind-elixir">
23
- <img src="https://badgen.net/bundlephobia/dependency-count/mind-elixir" alt="dependency-count">
24
- </a>
25
- <a href="https://packagephobia.com/result?p=mind-elixir">
26
- <img src="https://packagephobia.com/badge?p=mind-elixir" alt="package size">
27
- </a>
28
- </p>
29
-
30
- [English](/readme.md) |
31
- [中文](/readme/zh.md) |
32
- [Español](/readme/es.md) |
33
- [Français](/readme/fr.md) |
34
- [Português](/readme/pt.md) |
35
- [Русский](/readme/ru.md) |
36
- [日本語](/readme/ja.md) |
37
- [한국어](/readme/ko.md)
38
-
39
- Mind Elixir - это библиотека с открытым исходным кодом для создания интеллект-карт на JavaScript. Вы можете использовать её с любым frontend-фреймворком.
40
-
41
- Особенности:
42
-
43
- - Легковесность
44
- - Высокая производительность
45
- - Независимость от фреймворков
46
- - Расширяемость с помощью плагинов
47
- - Встроенные плагины для перетаскивания и редактирования узлов
48
- - Экспорт в SVG / PNG / HTML
49
- - Возможность сворачивать узлы
50
- - Поддержка массовых операций
51
- - Отмена / Повтор действий
52
- - Эффективные горячие клавиши
53
- - Простая стилизация узлов с помощью CSS переменных
54
-
55
- <details>
56
- <summary>Содержание</summary>
57
-
58
- - [Попробовать сейчас](#попробовать-сейчас)
59
- - [Playground](#playground)
60
- - [Документация](#документация)
61
- - [Использование](#использование)
62
- - [Установка](#установка)
63
- - [NPM](#npm)
64
- - [Script tag](#script-tag)
65
- - [Инициализация](#инициализация)
66
- - [Структура данных](#структура-данных)
67
- - [Обработка событий](#обработка-событий)
68
- - [Экспорт и импорт данных](#экспорт-и-импорт-данных)
69
- - [Контроль операций](#контроль-операций)
70
- - [Экспорт в изображение](#экспорт-в-изображение)
71
- - [Способ 1](#способ-1)
72
- - [Способ 2](#способ-2)
73
- - [Тема](#тема)
74
- - [Горячие клавиши](#горячие-клавиши)
75
- - [Экосистема](#экосистема)
76
- - [Разработка](#разработка)
77
- - [Благодарности](#благодарности)
78
- - [Контрибьюторы](#контрибьюторы)
79
-
80
- </details>
81
-
82
- ## Попробовать сейчас
83
-
84
- ![mindelixir](https://raw.githubusercontent.com/ssshooter/mind-elixir-core/master/images/screenshot5_2.jpg)
85
-
86
- https://mind-elixir.com/
87
-
88
- ### Playground
89
-
90
- - Vanilla JS - https://codepen.io/ssshooter/pen/vEOqWjE
91
- - React - https://codesandbox.io/p/devbox/mind-elixir-3-x-react-18-x-forked-f3mtcd
92
- - Vue3 - https://codesandbox.io/p/sandbox/mind-elixir-3-x-vue3-lth484
93
-
94
- ## Документация
95
-
96
- https://docs.mind-elixir.com/
97
-
98
- ## Использование
99
-
100
- ### Установка
101
-
102
- #### NPM
103
-
104
- ```bash
105
- npm i mind-elixir -S
106
- ```
107
-
108
- ```javascript
109
- import MindElixir from 'mind-elixir'
110
- ```
111
-
112
- #### Script tag
113
-
114
- ```html
115
- <script type="module" src="https://cdn.jsdelivr.net/npm/mind-elixir/dist/MindElixir.js"></script>
116
- ```
117
-
118
- И в вашем CSS файле:
119
-
120
- ```css
121
- @import 'https://cdn.jsdelivr.net/npm/mind-elixir/dist/style.css';
122
- ```
123
-
124
- ### Инициализация
125
-
126
- ```html
127
- <div id="map"></div>
128
- <style>
129
- #map {
130
- height: 500px;
131
- width: 100%;
132
- }
133
- </style>
134
- ```
135
-
136
- **Breaking Change** since 1.0.0, `data` should be passed to `init()`, not `options`.
137
-
138
- ```javascript
139
- import MindElixir from 'mind-elixir'
140
- import { en } from 'mind-elixir/i18n'
141
- import example from 'mind-elixir/dist/example1'
142
-
143
- let options = {
144
- el: '#map', // or HTMLDivElement
145
- direction: MindElixir.LEFT,
146
- draggable: true, // default true
147
- keypress: true, // default true
148
- overflowHidden: false, // default false
149
- mouseSelectionButton: 0, // 0 for left button, 2 for right button, default 0
150
- contextMenu: {
151
- locale: en,
152
- focus: true,
153
- link: true,
154
- extend: [
155
- {
156
- name: 'Node edit',
157
- onclick: () => {
158
- alert('extend menu')
159
- },
160
- },
161
- ],
162
- },
163
- before: {
164
- insertSibling(el, obj) {
165
- return true
166
- },
167
- async addChild(el, obj) {
168
- await sleep()
169
- return true
170
- },
171
- },
172
- }
173
-
174
- let mind = new MindElixir(options)
175
-
176
- mind.install(plugin) // install your plugin
177
-
178
- // create new map data
179
- const data = MindElixir.new('new topic')
180
- // or `example`
181
- // or the data return from `.getData()`
182
- mind.init(data)
183
-
184
- // get a node
185
- MindElixir.E('node-id')
186
- ```
187
-
188
- ### Структура данных
189
-
190
- ```javascript
191
- // whole node data structure up to now
192
- const nodeData = {
193
- topic: 'node topic',
194
- id: 'bd1c24420cd2c2f5',
195
- style: { fontSize: '32', color: '#3298db', background: '#ecf0f1' },
196
- expanded: true,
197
- parent: null,
198
- tags: ['Tag'],
199
- icons: ['😀'],
200
- hyperLink: 'https://github.com/ssshooter/mind-elixir-core',
201
- image: {
202
- url: 'https://raw.githubusercontent.com/ssshooter/mind-elixir-core/master/images/logo2.png', // required
203
- // you need to query the height and width of the image and calculate the appropriate value to display the image
204
- height: 90, // required
205
- width: 90, // required
206
- },
207
- children: [
208
- {
209
- topic: 'child',
210
- id: 'xxxx',
211
- // ...
212
- },
213
- ],
214
- }
215
- ```
216
-
217
- ### Обработка событий
218
-
219
- ```javascript
220
- mind.bus.addListener('operation', operation => {
221
- console.log(operation)
222
- // return {
223
- // name: action name,
224
- // obj: target object
225
- // }
226
-
227
- // name: [insertSibling|addChild|removeNode|beginEdit|finishEdit]
228
- // obj: target
229
-
230
- // name: moveNode
231
- // obj: {from:target1,to:target2}
232
- })
233
-
234
- mind.bus.addListener('selectNodes', nodes => {
235
- console.log(nodes)
236
- })
237
-
238
- mind.bus.addListener('expandNode', node => {
239
- console.log('expandNode: ', node)
240
- })
241
- ```
242
-
243
- ### Экспорт и импорт данных
244
-
245
- ```javascript
246
- // data export
247
- const data = mind.getData() // javascript object, see src/example.js
248
- mind.getDataString() // stringify object
249
-
250
- // data import
251
- // initiate
252
- let mind = new MindElixir(options)
253
- mind.init(data)
254
- // data update
255
- mind.refresh(data)
256
- ```
257
-
258
- ### Контроль операций
259
-
260
- ```javascript
261
- let mind = new MindElixir({
262
- // ...
263
- before: {
264
- insertSibling(el, obj) {
265
- console.log(el, obj)
266
- if (this.currentNode.nodeObj.parent.root) {
267
- return false
268
- }
269
- return true
270
- },
271
- async addChild(el, obj) {
272
- await sleep()
273
- if (this.currentNode.nodeObj.parent.root) {
274
- return false
275
- }
276
- return true
277
- },
278
- },
279
- })
280
- ```
281
-
282
- ## Экспорт в изображение
283
-
284
- ### Способ 1
285
-
286
- ```typescript
287
- const mind = {
288
- /** mind elixir instance */
289
- }
290
- const downloadPng = async () => {
291
- const blob = await mind.exportPng() // Get a Blob!
292
- if (!blob) return
293
- const url = URL.createObjectURL(blob)
294
- const a = document.createElement('a')
295
- a.href = url
296
- a.download = 'filename.png'
297
- a.click()
298
- URL.revokeObjectURL(url)
299
- }
300
- ```
301
-
302
- ### Способ 2
303
-
304
- Install `@ssshooter/modern-screenshot`, then:
305
-
306
- ```typescript
307
- import { domToPng } from '@ssshooter/modern-screenshot'
308
-
309
- const download = async () => {
310
- const dataUrl = await domToPng(mind.nodes, {
311
- onCloneNode: node => {
312
- const n = node as HTMLDivElement
313
- n.style.position = ''
314
- n.style.top = ''
315
- n.style.left = ''
316
- n.style.bottom = ''
317
- n.style.right = ''
318
- },
319
- padding: 300,
320
- quality: 1,
321
- })
322
- const link = document.createElement('a')
323
- link.download = 'screenshot.png'
324
- link.href = dataUrl
325
- link.click()
326
- }
327
- ```
328
-
329
- ## Тема
330
-
331
- ```javascript
332
- const options = {
333
- // ...
334
- theme: {
335
- name: 'Dark',
336
- // main lines color palette
337
- palette: ['#848FA0', '#748BE9', '#D2F9FE', '#4145A5', '#789AFA', '#706CF4', '#EF987F', '#775DD5', '#FCEECF', '#DA7FBC'],
338
- // overwrite css variables
339
- cssVar: {
340
- '--main-color': '#ffffff',
341
- '--main-bgcolor': '#4c4f69',
342
- '--color': '#cccccc',
343
- '--bgcolor': '#252526',
344
- '--panel-color': '255, 255, 255',
345
- '--panel-bgcolor': '45, 55, 72',
346
- },
347
- // all variables see /src/index.less
348
- },
349
- // ...
350
- }
351
-
352
- // ...
353
-
354
- mind.changeTheme({
355
- name: 'Latte',
356
- palette: ['#dd7878', '#ea76cb', '#8839ef', '#e64553', '#fe640b', '#df8e1d', '#40a02b', '#209fb5', '#1e66f5', '#7287fd'],
357
- cssVar: {
358
- '--main-color': '#444446',
359
- '--main-bgcolor': '#ffffff',
360
- '--color': '#777777',
361
- '--bgcolor': '#f6f6f6',
362
- },
363
- })
364
- ```
365
-
366
- Be aware that Mind Elixir will not observe the change of `prefers-color-scheme`. Please change the theme **manually** when the scheme changes.
367
-
368
- ## Горячие клавиши
369
-
370
- | Комбинация клавиш | Функция |
371
- | ------------------ | --------------------------------------------- |
372
- | Enter | Вставить соседний узел |
373
- | Tab | Вставить дочерний узел |
374
- | F1 | Центрировать карту |
375
- | F2 | Начать редактирование текущего узла |
376
- | ↑ | Выбрать предыдущий узел |
377
- | ↓ | Выбрать следующий узел |
378
- | ← / → | Выбрать родительский или первый дочерний узел |
379
- | PageUp / Alt + ↑ | Переместить узел вверх |
380
- | PageDown / Alt + ↓ | Переместить узел вниз |
381
- | Ctrl + ↑ | Изменить шаблон расположения на боковой |
382
- | Ctrl + ← | Изменить шаблон расположения на левый |
383
- | Ctrl + → | Изменить шаблон расположения на правый |
384
- | Ctrl + C | Копировать текущий узел |
385
- | Ctrl + V | Вставить скопированный узел |
386
- | Ctrl + "+" | Увеличить масштаб карты |
387
- | Ctrl + "-" | Уменьшить масштаб карты |
388
- | Ctrl + 0 | Сбросить масштаб |
389
-
390
- ## Экосистема
391
-
392
- - [@mind-elixir/node-menu](https://github.com/ssshooter/node-menu)
393
- - [@mind-elixir/node-menu-neo](https://github.com/ssshooter/node-menu-neo)
394
- - [@mind-elixir/export-xmind](https://github.com/ssshooter/export-xmind)
395
- - [@mind-elixir/export-html](https://github.com/ssshooter/export-html)
396
- - [mind-elixir-react](https://github.com/ssshooter/mind-elixir-react)
397
-
398
- PRs are welcome!
399
-
400
- ## Разработка
401
-
402
- ```
403
- pnpm i
404
- pnpm dev
405
- ```
406
-
407
- Test generated files with `dev.dist.ts`:
408
-
409
- ```
410
- pnpm build
411
- pnpm link ./
412
- ```
413
-
414
- Update docs:
415
-
416
- ```
417
- # Install api-extractor
418
- pnpm install -g @microsoft/api-extractor
419
- # Maintain /src/docs.ts
420
- # Generate docs
421
- pnpm doc
422
- pnpm doc:md
423
- ```
424
-
425
- ## Благодарности
426
-
427
- - [@viselect/vanilla](https://github.com/simonwep/selection/tree/master/packages/vanilla)
428
-
429
- ## Контрибьюторы
430
-
431
- Спасибо за ваш вклад в Mind Elixir! Ваша поддержка и преданность делают этот проект лучше.
432
-
433
- <a href="https://github.com/SSShooter/mind-elixir-core/graphs/contributors">
434
- <img src="https://contrib.rocks/image?repo=SSShooter/mind-elixir-core" />
435
- </a>