Implemented URL query parsing for initial token /opa/?token=abcde
[src/app-framework-demo.git] / afb-client / bower_components / tether / coffee / abutment.coffee
1 {getBounds, updateClasses, defer} = @Tether.Utils
2
3 @Tether.modules.push
4   position: ({top, left}) ->
5     {height, width} = @cache 'element-bounds', => getBounds @element
6
7     targetPos = @getTargetBounds()
8
9     bottom = top + height
10     right = left + width
11
12     abutted = []
13     if top <= targetPos.bottom and bottom >= targetPos.top
14       for side in ['left', 'right']
15         if targetPos[side] in [left, right]
16           abutted.push side
17
18     if left <= targetPos.right and right >= targetPos.left
19       for side in ['top', 'bottom']
20         if targetPos[side] in [top, bottom]
21           abutted.push side
22
23     allClasses = []
24     addClasses = []
25     
26     sides = ['left', 'top', 'right', 'bottom']
27     allClasses.push @getClass('abutted')
28     for side in sides
29       allClasses.push "#{ @getClass('abutted') }-#{ side }"
30
31     if abutted.length
32       addClasses.push @getClass('abutted')
33     for side in abutted
34       addClasses.push "#{ @getClass('abutted') }-#{ side }"
35
36     defer =>
37       updateClasses @target, addClasses, allClasses
38       updateClasses @element, addClasses, allClasses
39
40     true