Skip to content
Snippets Groups Projects
Select Git revision
  • 42cde0e243c0b2215e75d529be947beeebe1d8dd
  • main default protected
  • 0.1.0
3 results

build.properties

Blame
  • uiStore.js 1.08 KiB
    import * as allModes from '@/experimental/modes'
    
    const store = {
      namespaced: true,
      state: {
        interaction: {
          active: false,
          origin: null,
          shape: null
        },
        selection: {
          links: [],
          nodes: []
        },
        mode: 'move',
        scale: 1,
        translation: {
          x: 0,
          y: 0
        }
      },
      getters: {
        isScaled: state => !(state.scale === 1.0),
        isTranslated: state =>
          !(state.translation.x === 0 && state.translation.y === 0),
        activeMode: state => {
          return allModes[state.mode]
        },
        modeContainerStyle: state => {
          return {
            cursor: allModes[state.mode].cursor || 'initial'
          }
        },
        scalePercentage: state => {
          return `${(state.scale * 100).toFixed(0)}%`
        }
      },
      mutations: {
        setMode(state, mode) {
          if (allModes[mode]) {
            state.mode = mode
          } else {
            console.warn(`${mode} is not a valid mode`)
          }
        },
        setScale(state, scale) {
          state.scale = scale
        },
        setTranslation(state, { x, y }) {
          state.translation = { x, y }
        }
      }
    }
    
    export default store