summaryrefslogtreecommitdiffstats
path: root/afb-client/bower_components/tether/coffee/abutment.coffee
diff options
context:
space:
mode:
Diffstat (limited to 'afb-client/bower_components/tether/coffee/abutment.coffee')
-rw-r--r--afb-client/bower_components/tether/coffee/abutment.coffee40
1 files changed, 40 insertions, 0 deletions
diff --git a/afb-client/bower_components/tether/coffee/abutment.coffee b/afb-client/bower_components/tether/coffee/abutment.coffee
new file mode 100644
index 0000000..5f331e4
--- /dev/null
+++ b/afb-client/bower_components/tether/coffee/abutment.coffee
@@ -0,0 +1,40 @@
+{getBounds, updateClasses, defer} = @Tether.Utils
+
+@Tether.modules.push
+ position: ({top, left}) ->
+ {height, width} = @cache 'element-bounds', => getBounds @element
+
+ targetPos = @getTargetBounds()
+
+ bottom = top + height
+ right = left + width
+
+ abutted = []
+ if top <= targetPos.bottom and bottom >= targetPos.top
+ for side in ['left', 'right']
+ if targetPos[side] in [left, right]
+ abutted.push side
+
+ if left <= targetPos.right and right >= targetPos.left
+ for side in ['top', 'bottom']
+ if targetPos[side] in [top, bottom]
+ abutted.push side
+
+ allClasses = []
+ addClasses = []
+
+ sides = ['left', 'top', 'right', 'bottom']
+ allClasses.push @getClass('abutted')
+ for side in sides
+ allClasses.push "#{ @getClass('abutted') }-#{ side }"
+
+ if abutted.length
+ addClasses.push @getClass('abutted')
+ for side in abutted
+ addClasses.push "#{ @getClass('abutted') }-#{ side }"
+
+ defer =>
+ updateClasses @target, addClasses, allClasses
+ updateClasses @element, addClasses, allClasses
+
+ true