Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 51 lines (36 sloc) 1.02 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
Collection = require('lib/collection')

class ZIndex
  constructor: (@stage) ->
    @order = @stage.elements

  bringForward: (element) ->
    index = @order.indexOf(element)

    if index isnt -1 or index isnt (@order.length - 1)
      # Swap item forwards
      @order[index] = @order[index + 1]
      @order[index + 1] = element

    @set()

  bringBack: (element) ->
    index = @order.indexOf(element)

    if index isnt -1 or index isnt 0
      # Swap item backwards
      @order[index] = @order[index - 1]
      @order[index - 1] = element

    @set()

  bringToFront: (element) ->
    # Remove element
    index = @order.indexOf(element)
    @order.splice(index, 1)

    # Add it to the end
    @order.push(element)

    @set()

  bringToBack: (element) ->
    # Remove element
    index = @order.indexOf(element)
    @order.splice(index, 1)

    # Add it to the start
    @order.unshift(element)

    @set()

  set: ->
    for element, index in @order
      element.order(index)

module.exports = ZIndex
Something went wrong with that request. Please try again.