| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- import _ from 'lodash'
- function adjust (g) {
- const rankDir = g.graph().rankdir.toLowerCase()
- if (rankDir === 'lr' || rankDir === 'rl') {
- swapWidthHeight(g)
- }
- }
- function undo (g) {
- const rankDir = g.graph().rankdir.toLowerCase()
- if (rankDir === 'bt' || rankDir === 'rl') {
- reverseY(g)
- }
- if (rankDir === 'lr' || rankDir === 'rl') {
- swapXY(g)
- swapWidthHeight(g)
- }
- }
- function swapWidthHeight (g) {
- _.forEach(g.nodes(), function (v) { swapWidthHeightOne(g.node(v)) })
- _.forEach(g.edges(), function (e) { swapWidthHeightOne(g.edge(e)) })
- }
- function swapWidthHeightOne (attrs) {
- const w = attrs.width
- attrs.width = attrs.height
- attrs.height = w
- }
- function reverseY (g) {
- _.forEach(g.nodes(), function (v) { reverseYOne(g.node(v)) })
- _.forEach(g.edges(), function (e) {
- const edge = g.edge(e)
- _.forEach(edge.points, reverseYOne)
- if (_.has(edge, 'y')) {
- reverseYOne(edge)
- }
- })
- }
- function reverseYOne (attrs) {
- attrs.y = -attrs.y
- }
- function swapXY (g) {
- _.forEach(g.nodes(), function (v) { swapXYOne(g.node(v)) })
- _.forEach(g.edges(), function (e) {
- const edge = g.edge(e)
- _.forEach(edge.points, swapXYOne)
- if (_.has(edge, 'x')) {
- swapXYOne(edge)
- }
- })
- }
- function swapXYOne (attrs) {
- const x = attrs.x
- attrs.x = attrs.y
- attrs.y = x
- }
- export default {
- adjust,
- undo
- }
|