1.3.3 • Published 11 months ago

lin-mind v1.3.3

Weekly downloads
-
License
MIT
Repository
-
Last release
11 months ago

lin-mind

lin-mind 是一个无框架依赖的思维导图内核,本项目是基于Mind elixir的功能上进行二次开发, 所以本项目大部分功能与用法均与Mind elixir相同。

建议

本项目是根据公司业务需求,在原项目(Mind elixir)进行的二次开发。而且,本项目的功能也可能会随业务需求不定时进行改动,如果 需要一个稳定的版本,强烈建议使用原项目Mind elixir,个人认为该项目已满足大部分日常使用。

如何使用

安装

NPM

npm i lin-mind -S
import MindElixir, { E } from 'lin-mind'

HTML 结构

<div id="map"></div>
<style>
  #map {
    height: 500px;
    width: 100%;
  }
</style>

初始化

import MindElixir, { E } from 'lin-mind'
import { exportSvg, exportPng } from './painter'
import example from './example1'

let options = {
  el: '#map',
  direction: MindElixir.LEFT,
  // create new map data
  data: MindElixir.new('new topic') or example,
  // the data return from `.getAllData()`
  draggable: true, // default true
  contextMenu: true, // default true
  toolBar: true, // default true
  nodeMenu: true, // default true
  keypress: true, // default true
  locale: 'en', // [zh_CN,zh_TW,en,ja,pt] waiting for PRs
  overflowHidden: false, // default false
  primaryLinkStyle: 2, // [1,2] default 1
  primaryNodeVerticalGap: 15, // default 25
  primaryNodeHorizontalGap: 15, // default 65
  contextMenuOption: {
    focus: true,
    link: true,
    extend: [
      {
        name: 'Node edit',
        onclick: () => {
          alert('extend menu')
        },
      },
    ],
  },
  allowUndo: false,
  before: {
    insertSibling(el, obj) {
      return true
    },
    async addChild(el, obj) {
      await sleep()
      return true
    },
  },
}

let mind = new MindElixir(options)
mind.init()

// get a node
E('node-id')

数据结构

// whole node data structure up to now
{
  topic: 'node topic',
  id: 'bd1c24420cd2c2f5',
  style: { fontSize: '32', color: '#3298db', background: '#ecf0f1' },
  parent: null,
  tags: ['Tag'],
  icons: ['😀'],
  hyperLink: 'https://github.com/ssshooter/mind-elixir-core',
}

事件处理

mind.bus.addListener('operation', operation => {
  console.log(operation)
  // return {
  //   name: action name,
  //   obj: target object
  // }

  // name: [insertSibling|addChild|removeNode|beginEdit|finishEdit]
  // obj: target

  // name: moveNode
  // obj: {from:target1,to:target2}
})

mind.bus.addListener('selectNode', node => {
  console.log(node)
})

mind.bus.addListener('expandNode', node => {
  console.log('expandNode: ', node)
})

数据导出

mind.getAllData() // javascript object, see src/example.js
mind.getAllDataString() // stringify object
mind.getAllDataMd() // markdown

输出图片

WIP

import painter from 'lin-mind/painter'
painter.exportSvg()
painter.exportPng()

操作拦截

let mind = new MindElixir({
  ...
  before: {
    insertSibling(el, obj) {
      console.log(el, obj)
      if (this.currentNode.nodeObj.parent.root) {
        return false
      }
      return true
    },
    async addChild(el, obj) {
      await sleep()
      if (this.currentNode.nodeObj.parent.root) {
        return false
      }
      return true
    },
  },
})

感谢

canvg
Mind elixir
lu-mind-mapping

1.2.0

12 months ago

1.2.8

12 months ago

1.2.7

12 months ago

1.2.6

12 months ago

1.2.5

12 months ago

1.2.4

12 months ago

1.2.3

12 months ago

1.2.2

12 months ago

1.2.1

12 months ago

1.2.12

12 months ago

1.2.13

12 months ago

1.2.10

12 months ago

1.2.11

12 months ago

1.2.16

12 months ago

1.2.17

12 months ago

1.2.14

12 months ago

1.2.15

12 months ago

1.2.18

12 months ago

1.2.19

12 months ago

1.3.3

11 months ago

1.3.2

11 months ago

1.3.1

11 months ago

1.3.0

11 months ago

1.2.20

12 months ago

1.2.23

11 months ago

1.1.12

12 months ago

1.2.24

11 months ago

1.2.21

12 months ago

1.2.22

12 months ago

1.2.27

11 months ago

1.1.16

12 months ago

1.1.15

12 months ago

1.2.25

11 months ago

1.2.26

11 months ago

1.1.13

12 months ago

1.1.19

12 months ago

1.1.18

12 months ago

1.1.17

12 months ago

1.2.9

12 months ago

1.1.21

12 months ago

1.1.20

12 months ago

1.1.11

1 year ago

1.1.10

1 year ago

1.1.9

1 year ago

1.1.8

1 year ago

1.1.7

1 year ago

1.1.6

1 year ago

1.1.5

1 year ago

1.1.4

1 year ago

1.1.3

1 year ago

1.1.2

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.20

1 year ago

1.0.19

1 year ago

1.0.18

1 year ago

1.0.17

1 year ago

1.0.16

1 year ago

1.0.15

1 year ago

1.0.14

1 year ago

1.0.13

1 year ago

1.0.12

1 year ago

1.0.11

1 year ago

1.0.10

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago