mind-elixir 5.2.0 → 5.3.0

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.
Files changed (44) hide show
  1. package/LICENSE +21 -21
  2. package/dist/LayoutSsr.iife.js +1 -1
  3. package/dist/LayoutSsr.js +32 -31
  4. package/dist/MindElixir.css +1 -0
  5. package/dist/MindElixir.iife.js +4 -4
  6. package/dist/MindElixir.js +911 -954
  7. package/dist/MindElixirLite.css +1 -0
  8. package/dist/MindElixirLite.iife.js +4 -4
  9. package/dist/MindElixirLite.js +528 -585
  10. package/dist/example.iife.js +3 -3
  11. package/dist/example.js +1 -1
  12. package/dist/types/arrow.d.ts +1 -1
  13. package/dist/types/docs.d.ts +2 -2
  14. package/dist/types/index.d.ts +11 -11
  15. package/dist/types/methods.d.ts +39 -39
  16. package/dist/types/nodeOperation.d.ts +1 -1
  17. package/dist/types/plugin/keypress.d.ts +1 -1
  18. package/dist/types/summary.d.ts +1 -1
  19. package/dist/types/types/index.d.ts +9 -8
  20. package/dist/types/utils/index.d.ts +4 -404
  21. package/dist/types/utils/pubsub.d.ts +3 -2
  22. package/dist/types/utils/svg.d.ts +1 -1
  23. package/dist/types/viselect/src/EventEmitter.d.ts +13 -0
  24. package/dist/types/viselect/src/index.d.ts +112 -0
  25. package/dist/types/viselect/src/types.d.ts +85 -0
  26. package/dist/types/viselect/src/utils/arrayify.d.ts +1 -0
  27. package/dist/types/viselect/src/utils/browser.d.ts +2 -0
  28. package/dist/types/viselect/src/utils/css.d.ts +10 -0
  29. package/dist/types/viselect/src/utils/domRect.d.ts +1 -0
  30. package/dist/types/viselect/src/utils/events.d.ts +29 -0
  31. package/dist/types/viselect/src/utils/frames.d.ts +7 -0
  32. package/dist/types/viselect/src/utils/intersects.d.ts +9 -0
  33. package/dist/types/viselect/src/utils/matchesTrigger.d.ts +16 -0
  34. package/dist/types/viselect/src/utils/selectAll.d.ts +8 -0
  35. package/package.json +40 -36
  36. package/readme.md +430 -432
  37. package/dist/style.css +0 -1
  38. package/readme/es.md +0 -430
  39. package/readme/fr.md +0 -430
  40. package/readme/ja.md +0 -429
  41. package/readme/ko.md +0 -430
  42. package/readme/pt.md +0 -430
  43. package/readme/ru.md +0 -430
  44. package/readme/zh.md +0 -430
package/readme/ja.md DELETED
@@ -1,429 +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://www.npmjs.com/package/mind-elixir">
10
- <img src="https://img.shields.io/npm/v/mind-elixir" alt="version">
11
- </a>
12
- <a href="https://github.com/ssshooter/mind-elixir-core/blob/master/LICENSE">
13
- <img src="https://img.shields.io/npm/l/mind-elixir" alt="license">
14
- </a>
15
- <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">
16
- <img src="https://api.codacy.com/project/badge/Grade/09fadec5bf094886b30cea6aabf3a88b" alt="code quality">
17
- </a>
18
- <a href="https://bundlephobia.com/result?p=mind-elixir">
19
- <img src="https://badgen.net/bundlephobia/dependency-count/mind-elixir" alt="dependency-count">
20
- </a>
21
- <a href="https://packagephobia.com/result?p=mind-elixir">
22
- <img src="https://packagephobia.com/badge?p=mind-elixir" alt="package size">
23
- </a>
24
- </p>
25
-
26
- [English](/readme.md) |
27
- [中文](/readme/zh.md) |
28
- [Español](/readme/es.md) |
29
- [Français](/readme/fr.md) |
30
- [Português](/readme/pt.md) |
31
- [Русский](/readme/ru.md) |
32
- [日本語](/readme/ja.md) |
33
- [한국어](/readme/ko.md)
34
-
35
- Mind Elixirは、オープンソースのJavaScriptマインドマップコアです。お好みのフロントエンドフレームワークと組み合わせて使用できます。
36
-
37
- 特徴:
38
-
39
- - 軽量
40
- - 高パフォーマンス
41
- - フレームワーク非依存
42
- - プラグイン対応
43
- - ドラッグ&ドロップ/ノード編集プラグイン内蔵
44
- - SVG/PNG/HTMLとしてエクスポート可能
45
- - ノードの要約
46
- - 一括操作対応
47
- - 元に戻す/やり直し
48
- - 効率的なショートカット
49
- - CSSカスタマイズが容易
50
-
51
- <details>
52
- <summary>目次</summary>
53
-
54
- - [デモを試す](#デモを試す)
55
- - [プレイグラウンド](#プレイグラウンド)
56
- - [ドキュメント](#ドキュメント)
57
- - [使い方](#使い方)
58
- - [インストール](#インストール)
59
- - [NPM](#npm)
60
- - [スクリプトタグ](#スクリプトタグ)
61
- - [初期化](#初期化)
62
- - [データ構造](#データ構造)
63
- - [イベントハンドリング](#イベントハンドリング)
64
- - [データのエクスポートとインポート](#データのエクスポートとインポート)
65
- - [操作ガード](#操作ガード)
66
- - [画像としてエクスポート](#画像としてエクスポート)
67
- - [方法1](#方法1)
68
- - [方法2](#方法2)
69
- - [テーマ](#テーマ)
70
- - [ショートカット](#ショートカット)
71
- - [エコシステム](#エコシステム)
72
- - [開発](#開発)
73
- - [謝辞](#謝辞)
74
- - [貢献者](#貢献者)
75
-
76
- </details>
77
-
78
- ## デモを試す
79
-
80
- ![mindelixir](https://raw.githubusercontent.com/ssshooter/mind-elixir-core/master/images/screenshot2.png)
81
-
82
- https://mind-elixir.com/
83
-
84
- ### プレイグラウンド
85
-
86
- - Vanilla JS - https://codepen.io/ssshooter/pen/OJrJowN
87
- - React - https://codesandbox.io/s/mind-elixir-3-x-react-18-x-vy9fcq
88
- - Vue3 - https://codesandbox.io/s/mind-elixir-3-x-vue3-lth484
89
- - Vue2 - https://codesandbox.io/s/mind-elixir-3-x-vue-2-x-5kdfjp
90
-
91
- ## ドキュメント
92
-
93
- https://docs.mind-elixir.com/
94
-
95
- ## 使い方
96
-
97
- ### インストール
98
-
99
- #### NPM
100
-
101
- ```bash
102
- npm i mind-elixir -S
103
- ```
104
-
105
- ```javascript
106
- import MindElixir from 'mind-elixir'
107
- ```
108
-
109
- #### スクリプトタグ
110
-
111
- ```html
112
- <script type="module" src="https://cdn.jsdelivr.net/npm/mind-elixir/dist/MindElixir.js"></script>
113
- ```
114
-
115
- ### 初期化
116
-
117
- ```html
118
- <div id="map"></div>
119
- <style>
120
- #map {
121
- height: 500px;
122
- width: 100%;
123
- }
124
- </style>
125
- ```
126
-
127
- **重要な変更** バージョン1.0.0以降、`data`は`options`ではなく`init()`に渡す必要があります。
128
-
129
- ```javascript
130
- import MindElixir from 'mind-elixir'
131
- import example from 'mind-elixir/dist/example1'
132
-
133
- let options = {
134
- el: '#map', // またはHTMLDivElement
135
- direction: MindElixir.LEFT,
136
- draggable: true, // デフォルトはtrue
137
- contextMenu: true, // デフォルトはtrue
138
- toolBar: true, // デフォルトはtrue
139
- nodeMenu: true, // デフォルトはtrue
140
- keypress: true, // デフォルトはtrue
141
- locale: 'ja', // [zh_CN,zh_TW,en,ja,pt,ru] PRs募集中
142
- overflowHidden: false, // デフォルトはfalse
143
- mainLinkStyle: 2, // [1,2] デフォルトは1
144
- mouseSelectionButton: 0, // 0は左クリック、2は右クリック、デフォルトは0
145
- contextMenuOption: {
146
- focus: true,
147
- link: true,
148
- extend: [
149
- {
150
- name: 'ノード編集',
151
- onclick: () => {
152
- alert('拡張メニュー')
153
- },
154
- },
155
- ],
156
- },
157
- before: {
158
- insertSibling(el, obj) {
159
- return true
160
- },
161
- async addChild(el, obj) {
162
- await sleep()
163
- return true
164
- },
165
- },
166
- }
167
-
168
- let mind = new MindElixir(options)
169
-
170
- mind.install(plugin) // プラグインのインストール
171
-
172
- // 新しいマップデータの作成
173
- const data = MindElixir.new('新しいトピック')
174
- // または `example`
175
- // または `.getData()`の戻り値
176
- mind.init(data)
177
-
178
- // ノードの取得
179
- MindElixir.E('node-id')
180
- ```
181
-
182
- ### データ構造
183
-
184
- ```javascript
185
- // 現在のノードデータ構造
186
- const nodeData = {
187
- topic: 'ノードのトピック',
188
- id: 'bd1c24420cd2c2f5',
189
- style: { fontSize: '32', color: '#3298db', background: '#ecf0f1' },
190
- expanded: true,
191
- parent: null,
192
- tags: ['タグ'],
193
- icons: ['😀'],
194
- hyperLink: 'https://github.com/ssshooter/mind-elixir-core',
195
- image: {
196
- url: 'https://raw.githubusercontent.com/ssshooter/mind-elixir-core/master/images/logo2.png', // 必須
197
- height: 90, // 必須
198
- width: 90, // 必須
199
- },
200
- children: [
201
- {
202
- topic: '子ノード',
203
- id: 'xxxx',
204
- // ...
205
- },
206
- ],
207
- }
208
- ```
209
-
210
- ### イベントハンドリング
211
-
212
- ```javascript
213
- mind.bus.addListener('operation', operation => {
214
- console.log(operation)
215
- // return {
216
- // name: action name,
217
- // obj: target object
218
- // }
219
-
220
- // name: [insertSibling|addChild|removeNode|beginEdit|finishEdit]
221
- // obj: target
222
-
223
- // name: moveNode
224
- // obj: {from:target1,to:target2}
225
- })
226
-
227
-
228
- mind.bus.addListener('selectNodes', nodes => {
229
- console.log(nodes)
230
- })
231
-
232
- mind.bus.addListener('expandNode', node => {
233
- console.log('expandNode: ', node)
234
- })
235
- ```
236
-
237
- ### データのエクスポートとインポート
238
-
239
- ```javascript
240
- // データのエクスポート
241
- const data = mind.getData() // JavaScriptオブジェクト、src/example.jsを参照
242
- mind.getDataString() // オブジェクトを文字列化
243
-
244
- // データのインポート
245
- // 初期化
246
- let mind = new MindElixir(options)
247
- mind.init(data)
248
- // データの更新
249
- mind.refresh(data)
250
- ```
251
-
252
- ### 操作ガード
253
-
254
- ```javascript
255
- let mind = new MindElixir({
256
- // ...
257
- before: {
258
- insertSibling(el, obj) {
259
- console.log(el, obj)
260
- if (this.currentNode.nodeObj.parent.root) {
261
- return false
262
- }
263
- return true
264
- },
265
- async addChild(el, obj) {
266
- await sleep()
267
- if (this.currentNode.nodeObj.parent.root) {
268
- return false
269
- }
270
- return true
271
- },
272
- },
273
- })
274
- ```
275
-
276
- ## 画像としてエクスポート
277
-
278
- ### 方法1
279
-
280
- ```typescript
281
- const mind = {
282
- /** mind elixir instance */
283
- }
284
- const downloadPng = async () => {
285
- const blob = await mind.exportPng() // Blobを取得
286
- if (!blob) return
287
- const url = URL.createObjectURL(blob)
288
- const a = document.createElement('a')
289
- a.href = url
290
- a.download = 'filename.png'
291
- a.click()
292
- URL.revokeObjectURL(url)
293
- }
294
- ```
295
-
296
- ### 方法2
297
-
298
- `@ssshooter/modern-screenshot`をインストールし、次に実行します:
299
-
300
- ```typescript
301
- import { domToPng } from '@ssshooter/modern-screenshot'
302
-
303
- const download = async () => {
304
- const dataUrl = await domToPng(mind.nodes, {
305
- onCloneNode: node => {
306
- const n = node as HTMLDivElement
307
- n.style.position = ''
308
- n.style.top = ''
309
- n.style.left = ''
310
- n.style.bottom = ''
311
- n.style.right = ''
312
- },
313
- padding: 300,
314
- quality: 1,
315
- })
316
- const link = document.createElement('a')
317
- link.download = 'screenshot.png'
318
- link.href = dataUrl
319
- link.click()
320
- }
321
- ```
322
-
323
- ## テーマ
324
-
325
- ```javascript
326
- const options = {
327
- // ...
328
- theme: {
329
- name: 'Dark',
330
- // メインラインのカラーパレット
331
- palette: ['#848FA0', '#748BE9', '#D2F9FE', '#4145A5', '#789AFA', '#706CF4', '#EF987F', '#775DD5', '#FCEECF', '#DA7FBC'],
332
- // CSS変数の上書き
333
- cssVar: {
334
- '--main-color': '#ffffff',
335
- '--main-bgcolor': '#4c4f69',
336
- '--color': '#cccccc',
337
- '--bgcolor': '#252526',
338
- '--panel-color': '255, 255, 255',
339
- '--panel-bgcolor': '45, 55, 72',
340
- },
341
- // すべての変数は/src/index.lessを参照
342
- },
343
- // ...
344
- }
345
-
346
- // ...
347
-
348
- mind.changeTheme({
349
- name: 'Latte',
350
- palette: ['#dd7878', '#ea76cb', '#8839ef', '#e64553', '#fe640b', '#df8e1d', '#40a02b', '#209fb5', '#1e66f5', '#7287fd'],
351
- cssVar: {
352
- '--main-color': '#444446',
353
- '--main-bgcolor': '#ffffff',
354
- '--color': '#777777',
355
- '--bgcolor': '#f6f6f6',
356
- },
357
- })
358
- ```
359
-
360
- Mind Elixirは`prefers-color-scheme`の変更を監視しません。スキームが変更された場合は、テーマを**手動で**変更してください。
361
-
362
- ## ショートカット
363
-
364
- | ショートカット | 機能 |
365
- | ------------------ | -------------------------------- |
366
- | Enter | 兄弟ノードを挿入 |
367
- | Tab | 子ノードを挿入 |
368
- | F1 | マップを中央に配置 |
369
- | F2 | 現在のノードの編集を開始 |
370
- | ↑ | 前の兄弟ノードを選択 |
371
- | ↓ | 次の兄弟ノードを選択 |
372
- | ← / → | 親または最初の子ノードを選択 |
373
- | PageUp / Alt + ↑ | ノードを上に移動 |
374
- | PageDown / Alt + ↓ | ノードを下に移動 |
375
- | Ctrl + ↑ | レイアウトパターンをサイドに変更 |
376
- | Ctrl + ← | レイアウトパターンを左に変更 |
377
- | Ctrl + → | レイアウトパターンを右に変更 |
378
- | Ctrl + C | 現在のノードをコピー |
379
- | Ctrl + V | コピーしたノードを貼り付け |
380
- | Ctrl + "+" | マインドマップをズームイン |
381
- | Ctrl + "-" | マインドマップをズームアウト |
382
- | Ctrl + 0 | ズームレベルをリセット |
383
-
384
- ## エコシステム
385
-
386
- - [@mind-elixir/node-menu](https://github.com/ssshooter/node-menu)
387
- - [@mind-elixir/node-menu-neo](https://github.com/ssshooter/node-menu-neo)
388
- - [@mind-elixir/export-xmind](https://github.com/ssshooter/export-xmind)
389
- - [@mind-elixir/export-html](https://github.com/ssshooter/export-html)
390
- - [mind-elixir-react](https://github.com/ssshooter/mind-elixir-react)
391
-
392
- PRsは大歓迎です!
393
-
394
- ## 開発
395
-
396
- ```
397
- pnpm i
398
- pnpm dev
399
- ```
400
-
401
- `dev.dist.ts`で生成されたファイルをテストします:
402
-
403
- ```
404
- pnpm build
405
- pnpm link ./
406
- ```
407
-
408
- ドキュメントを更新します:
409
-
410
- ```
411
- # api-extractorをインストール
412
- pnpm install -g @microsoft/api-extractor
413
- # /src/docs.tsを維持
414
- # ドキュメントを生成
415
- pnpm doc
416
- pnpm doc:md
417
- ```
418
-
419
- ## 謝辞
420
-
421
- - [@viselect/vanilla](https://github.com/simonwep/selection/tree/master/packages/vanilla)
422
-
423
- ## 貢献者
424
-
425
- Mind Elixirへの貢献に感謝します!あなたのサポートと献身がこのプロジェクトをより良くします。
426
-
427
- <a href="https://github.com/SSShooter/mind-elixir-core/graphs/contributors">
428
- <img src="https://contrib.rocks/image?repo=SSShooter/mind-elixir-core&columns=6" />
429
- </a>