1 | var __hasProp = Object.prototype.hasOwnProperty, |
---|
2 | __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor; child.__super__ = parent.prototype; return child; }; |
---|
3 | |
---|
4 | Annotator.Widget = (function(_super) { |
---|
5 | |
---|
6 | __extends(Widget, _super); |
---|
7 | |
---|
8 | Widget.prototype.classes = { |
---|
9 | hide: 'annotator-hide', |
---|
10 | invert: { |
---|
11 | x: 'annotator-invert-x', |
---|
12 | y: 'annotator-invert-y' |
---|
13 | } |
---|
14 | }; |
---|
15 | |
---|
16 | function Widget(element, options) { |
---|
17 | Widget.__super__.constructor.apply(this, arguments); |
---|
18 | this.classes = $.extend({}, Annotator.Widget.prototype.classes, this.classes); |
---|
19 | } |
---|
20 | |
---|
21 | Widget.prototype.checkOrientation = function() { |
---|
22 | var current, offset, viewport, widget, window; |
---|
23 | this.resetOrientation(); |
---|
24 | window = $(util.getGlobal()); |
---|
25 | widget = this.element.children(":first"); |
---|
26 | offset = widget.offset(); |
---|
27 | viewport = { |
---|
28 | top: window.scrollTop(), |
---|
29 | right: window.width() + window.scrollLeft() |
---|
30 | }; |
---|
31 | current = { |
---|
32 | top: offset.top, |
---|
33 | right: offset.left + widget.width() |
---|
34 | }; |
---|
35 | if ((current.top - viewport.top) < 0) this.invertY(); |
---|
36 | if ((current.right - viewport.right) > 0) this.invertX(); |
---|
37 | return this; |
---|
38 | }; |
---|
39 | |
---|
40 | Widget.prototype.resetOrientation = function() { |
---|
41 | this.element.removeClass(this.classes.invert.x).removeClass(this.classes.invert.y); |
---|
42 | return this; |
---|
43 | }; |
---|
44 | |
---|
45 | Widget.prototype.invertX = function() { |
---|
46 | this.element.addClass(this.classes.invert.x); |
---|
47 | return this; |
---|
48 | }; |
---|
49 | |
---|
50 | Widget.prototype.invertY = function() { |
---|
51 | this.element.addClass(this.classes.invert.y); |
---|
52 | return this; |
---|
53 | }; |
---|
54 | |
---|
55 | Widget.prototype.isInvertedY = function() { |
---|
56 | return this.element.hasClass(this.classes.invert.y); |
---|
57 | }; |
---|
58 | |
---|
59 | Widget.prototype.isInvertedX = function() { |
---|
60 | return this.element.hasClass(this.classes.invert.x); |
---|
61 | }; |
---|
62 | |
---|
63 | return Widget; |
---|
64 | |
---|
65 | })(Delegator); |
---|