summaryrefslogtreecommitdiffstats
path: root/src/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/index.js')
-rw-r--r--src/index.js63
1 files changed, 0 insertions, 63 deletions
diff --git a/src/index.js b/src/index.js
deleted file mode 100644
index 3e173a7..0000000
--- a/src/index.js
+++ /dev/null
@@ -1,63 +0,0 @@
-(function(root, name, make) {
- if (typeof module != 'undefined' && module['exports']) module['exports'] = make();
- else root[name] = make();
-}(this, 'actual', function() {
-
- /**
- * @param {string} feature range feature name e.g. "width"
- * @param {string=} unit CSS unit for feature e.g. "em"
- * @param {number=} init initial guess
- * @param {number=} step size for iterations
- * @return {number} breakpoint (0 if invalid unit or feature)
- */
- function actual(feature, unit, init, step) {
- var up, gte, lte, curr, mq = actual['mq'];
- unit = typeof unit == 'string' ? unit : '';
- init = 0 < init ? (unit ? +init : init>>0) : 1;
- // Step starts positive. Minimize iterations, unless feat may be "integer" type.
- step = 0 < step ? +step : 0 > step ? -step : 'px' == unit ? 256 : unit ? 32 : 1;
- for (feature += ':', unit += ')', curr = init; step && 0 <= curr; curr+=step) {
- lte = mq('(min-' + feature + curr + unit);
- gte = mq('(max-' + feature + curr + unit);
- // Found: Use the floored value if it makes an exact match. Else return as is.
- if (lte && gte) return mq('(' + feature + (curr>>0) + unit) ? curr>>0 : curr;
- // 1st iteration: Save direction. Flip if down. Break if neither b/c unknown.
- if (null == up) step = (up = !gte) ? lte && step : -step;
- // Later iterations: If skipped, reverse direction and raise precision.
- else if (gte ? up : !up) up = !up, step = -step/2;
- }
- return 0;
- }
-
- /**
- * @param {string} unit
- * @return {Function}
- */
- function as(unit) {
- return function(feature) {
- return actual(feature, unit);
- };
- }
-
- /**
- * @param {string} feat
- * @return {Function}
- */
- function feature(feat) {
- return function(unit) {
- return actual(feat, unit);
- };
- }
-
- var media = 'matchMedia', win = typeof window != 'undefined' && window;
- actual['actual'] = actual;
- actual['feature'] = feature;
- actual['as'] = as;
- actual['mq'] = win[media] || win[media = 'msMatchMedia'] ? function(q) {
- return !!win[media](q).matches;
- } : function() {
- return false;
- };
-
- return actual;
-})); \ No newline at end of file