diff options
Diffstat (limited to 'afm-client/bower_components/tether/coffee/abutment.coffee')
-rw-r--r-- | afm-client/bower_components/tether/coffee/abutment.coffee | 40 |
1 files changed, 40 insertions, 0 deletions
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 |