main.js 1.32 KB
import {
  validator,
  setTouchState
} from './utils/helper'
import DEFAULT from './default'
import prepare from './prepare'
import observer from './observer'
import methods from './methods'
import update from './update'
import handle from './handle'
import cutt from './cut'

const version = __VERSION__

class WeCropper {
  constructor (params) {
    const self = this
    const _default = {}

    validator(self, DEFAULT)

    Object.keys(DEFAULT).forEach(key => {
      _default[key] = DEFAULT[key].default
    })
    Object.assign(self, _default, params)

    self.prepare()
    self.attachPage()
    self.createCtx()
    self.observer()
    self.cutt()
    self.methods()
    self.init()
    self.update()

    return self
  }

  init () {
    const self = this
    const { src } = self

    self.version = version

    typeof self.onReady === 'function' && self.onReady(self.ctx, self)

    if (src) {
      self.pushOrign(src)
    } else {
      self.updateCanvas()
    }
    setTouchState(self, false, false, false)

    self.oldScale = 1
    self.newScale = 1

    return self
  }
}

Object.assign(WeCropper.prototype, handle)

WeCropper.prototype.prepare = prepare
WeCropper.prototype.observer = observer
WeCropper.prototype.methods = methods
WeCropper.prototype.cutt = cutt
WeCropper.prototype.update = update

export default WeCropper