summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/breakpoints.js
diff options
context:
space:
mode:
authorFatih Acet <acetfatih@gmail.com>2016-07-22 17:01:57 +0300
committerFatih Acet <acetfatih@gmail.com>2016-07-22 17:07:29 +0300
commitbc3f33f92a16d3afdb8a472f60940e7c46a31564 (patch)
treec6e568504b7888591ad15586bb1ace99db8941ca /app/assets/javascripts/breakpoints.js
parent033e5423a2594e08a7ebcd2379bd2331f4c39032 (diff)
downloadgitlab-ce-jsify.tar.gz
JSify all the things!jsify
Diffstat (limited to 'app/assets/javascripts/breakpoints.js')
-rw-r--r--app/assets/javascripts/breakpoints.js65
1 files changed, 65 insertions, 0 deletions
diff --git a/app/assets/javascripts/breakpoints.js b/app/assets/javascripts/breakpoints.js
new file mode 100644
index 00000000000..d9e85e1db33
--- /dev/null
+++ b/app/assets/javascripts/breakpoints.js
@@ -0,0 +1,65 @@
+this.Breakpoints = (function() {
+ var BreakpointInstance, instance;
+
+ function Breakpoints() {}
+
+ instance = null;
+
+ BreakpointInstance = (function() {
+ var BREAKPOINTS;
+
+ BREAKPOINTS = ["xs", "sm", "md", "lg"];
+
+ function BreakpointInstance() {
+ this.setup();
+ }
+
+ BreakpointInstance.prototype.setup = function() {
+ var allDeviceSelector, els;
+ allDeviceSelector = BREAKPOINTS.map(function(breakpoint) {
+ return ".device-" + breakpoint;
+ });
+ if ($(allDeviceSelector.join(",")).length) {
+ return;
+ }
+ els = $.map(BREAKPOINTS, function(breakpoint) {
+ return "<div class='device-" + breakpoint + " visible-" + breakpoint + "'></div>";
+ });
+ return $("body").append(els.join(''));
+ };
+
+ BreakpointInstance.prototype.visibleDevice = function() {
+ var allDeviceSelector;
+ allDeviceSelector = BREAKPOINTS.map(function(breakpoint) {
+ return ".device-" + breakpoint;
+ });
+ return $(allDeviceSelector.join(",")).filter(":visible");
+ };
+
+ BreakpointInstance.prototype.getBreakpointSize = function() {
+ var $visibleDevice;
+ $visibleDevice = this.visibleDevice;
+ if (!$visibleDevice().length) {
+ this.setup();
+ }
+ $visibleDevice = this.visibleDevice();
+ return $visibleDevice.attr("class").split("visible-")[1];
+ };
+
+ return BreakpointInstance;
+
+ })();
+
+ Breakpoints.get = function() {
+ return instance != null ? instance : instance = new BreakpointInstance;
+ };
+
+ return Breakpoints;
+
+})();
+
+$((function(_this) {
+ return function() {
+ return _this.bp = Breakpoints.get();
+ };
+})(this));