From be83a8f382cf2fea98161bfd6d51719aacbf9aa9 Mon Sep 17 00:00:00 2001 From: Fulup Ar Foll Date: Thu, 28 Jan 2016 16:30:12 +0100 Subject: Update JSON API --- .../bower_components/tether/coffee/abutment.coffee | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 afm-client/bower_components/tether/coffee/abutment.coffee (limited to 'afm-client/bower_components/tether/coffee/abutment.coffee') diff --git a/afm-client/bower_components/tether/coffee/abutment.coffee b/afm-client/bower_components/tether/coffee/abutment.coffee new file mode 100644 index 0000000..5f331e4 --- /dev/null +++ b/afm-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 -- cgit 1.2.3-korg