Skip to content

Commit f42b79b

Browse files
author
pzuraq
committed
Adds an option to disable moving tethered element to the body
1 parent 3796885 commit f42b79b

File tree

6 files changed

+39
-39
lines changed

6 files changed

+39
-39
lines changed

bower.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "tether",
3-
"version": "1.0.2",
3+
"version": "1.1.0",
44
"homepage": "http://github.hubspot.com/tether",
55
"authors": [
66
"Zack Bloom <zackbloom@gmail.com>",

component.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "tether",
33
"repo": "HubSpot/tether",
4-
"version": "1.0.2",
4+
"version": "1.1.0",
55
"description": "A client-side library to make absolutely positioned elements attach to elements in the page efficiently.",
66
"authors": [
77
"Zack Bloom <zackbloom@gmail.com>",

dist/js/tether.js

+34-34
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ function getScrollBarSize() {
182182
}
183183

184184
function extend() {
185-
var out = arguments[0] === undefined ? {} : arguments[0];
185+
var out = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
186186

187187
var args = [];
188188

@@ -285,7 +285,7 @@ var Evented = (function () {
285285
_createClass(Evented, [{
286286
key: 'on',
287287
value: function on(event, handler, ctx) {
288-
var once = arguments[3] === undefined ? false : arguments[3];
288+
var once = arguments.length <= 3 || arguments[3] === undefined ? false : arguments[3];
289289

290290
if (typeof this.bindings === 'undefined') {
291291
this.bindings = {};
@@ -323,10 +323,6 @@ var Evented = (function () {
323323
}, {
324324
key: 'trigger',
325325
value: function trigger(event) {
326-
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
327-
args[_key - 1] = arguments[_key];
328-
}
329-
330326
if (typeof this.bindings !== 'undefined' && this.bindings[event]) {
331327
var i = 0;
332328
while (i < this.bindings[event].length) {
@@ -340,6 +336,10 @@ var Evented = (function () {
340336
context = this;
341337
}
342338

339+
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
340+
args[_key - 1] = arguments[_key];
341+
}
342+
343343
handler.apply(context, args);
344344

345345
if (once) {
@@ -374,9 +374,9 @@ TetherBase.Utils = {
374374

375375
'use strict';
376376

377-
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
377+
var _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();
378378

379-
function _slicedToArray(arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }
379+
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
380380

381381
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
382382

@@ -397,7 +397,7 @@ var flush = _TetherBase$Utils.flush;
397397
var getScrollBarSize = _TetherBase$Utils.getScrollBarSize;
398398

399399
function within(a, b) {
400-
var diff = arguments[2] === undefined ? 1 : arguments[2];
400+
var diff = arguments.length <= 2 || arguments[2] === undefined ? 1 : arguments[2];
401401

402402
return a + diff >= b && b >= a - diff;
403403
}
@@ -517,12 +517,12 @@ var attachmentToOffset = function attachmentToOffset(attachment) {
517517
};
518518

519519
function addOffset() {
520+
var out = { top: 0, left: 0 };
521+
520522
for (var _len = arguments.length, offsets = Array(_len), _key = 0; _key < _len; _key++) {
521523
offsets[_key] = arguments[_key];
522524
}
523525

524-
var out = { top: 0, left: 0 };
525-
526526
offsets.forEach(function (_ref) {
527527
var top = _ref.top;
528528
var left = _ref.left;
@@ -590,13 +590,13 @@ var TetherClass = (function () {
590590
_createClass(TetherClass, [{
591591
key: 'getClass',
592592
value: function getClass() {
593-
var key = arguments[0] === undefined ? '' : arguments[0];
593+
var key = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0];
594594
var classes = this.options.classes;
595595

596596
if (typeof classes !== 'undefined' && classes[key]) {
597597
return this.options.classes[key];
598598
} else if (this.options.classPrefix) {
599-
return '' + this.options.classPrefix + '-' + key;
599+
return this.options.classPrefix + '-' + key;
600600
} else {
601601
return key;
602602
}
@@ -606,7 +606,7 @@ var TetherClass = (function () {
606606
value: function setOptions(options) {
607607
var _this2 = this;
608608

609-
var pos = arguments[1] === undefined ? true : arguments[1];
609+
var pos = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];
610610

611611
var defaults = {
612612
offset: '0 0',
@@ -788,7 +788,7 @@ var TetherClass = (function () {
788788
}, {
789789
key: 'enable',
790790
value: function enable() {
791-
var pos = arguments[0] === undefined ? true : arguments[0];
791+
var pos = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];
792792

793793
if (!(this.options.addTargetClasses === false)) {
794794
addClass(this.target, this.getClass('enabled'));
@@ -851,22 +851,22 @@ var TetherClass = (function () {
851851
var add = this._addAttachClasses;
852852

853853
if (elementAttach.top) {
854-
add.push('' + this.getClass('element-attached') + '-' + elementAttach.top);
854+
add.push(this.getClass('element-attached') + '-' + elementAttach.top);
855855
}
856856
if (elementAttach.left) {
857-
add.push('' + this.getClass('element-attached') + '-' + elementAttach.left);
857+
add.push(this.getClass('element-attached') + '-' + elementAttach.left);
858858
}
859859
if (targetAttach.top) {
860-
add.push('' + this.getClass('target-attached') + '-' + targetAttach.top);
860+
add.push(this.getClass('target-attached') + '-' + targetAttach.top);
861861
}
862862
if (targetAttach.left) {
863-
add.push('' + this.getClass('target-attached') + '-' + targetAttach.left);
863+
add.push(this.getClass('target-attached') + '-' + targetAttach.left);
864864
}
865865

866866
var all = [];
867867
sides.forEach(function (side) {
868-
all.push('' + _this4.getClass('element-attached') + '-' + side);
869-
all.push('' + _this4.getClass('target-attached') + '-' + side);
868+
all.push(_this4.getClass('element-attached') + '-' + side);
869+
all.push(_this4.getClass('target-attached') + '-' + side);
870870
});
871871

872872
defer(function () {
@@ -887,7 +887,7 @@ var TetherClass = (function () {
887887
value: function position() {
888888
var _this5 = this;
889889

890-
var flushChanges = arguments[0] === undefined ? true : arguments[0];
890+
var flushChanges = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];
891891

892892
// flushChanges commits the changes immediately, leave true unless you are positioning multiple
893893
// tethers (in which case call Tether.Utils.flush yourself when you're done)
@@ -1123,15 +1123,15 @@ var TetherClass = (function () {
11231123
}
11241124
} else {
11251125
if (_same.top) {
1126-
css.top = '' + _pos.top + 'px';
1126+
css.top = _pos.top + 'px';
11271127
} else {
1128-
css.bottom = '' + _pos.bottom + 'px';
1128+
css.bottom = _pos.bottom + 'px';
11291129
}
11301130

11311131
if (_same.left) {
1132-
css.left = '' + _pos.left + 'px';
1132+
css.left = _pos.left + 'px';
11331133
} else {
1134-
css.right = '' + _pos.right + 'px';
1134+
css.right = _pos.right + 'px';
11351135
}
11361136
}
11371137
};
@@ -1165,7 +1165,7 @@ var TetherClass = (function () {
11651165
transcribe({ top: true, left: true }, pos.page);
11661166
}
11671167

1168-
if (!moved && this.element.parentNode.tagName !== 'BODY') {
1168+
if (this.options.moveRoot !== false && !moved && this.element.parentNode.tagName !== 'BODY') {
11691169
this.element.parentNode.removeChild(this.element);
11701170
document.body.appendChild(this.element);
11711171
}
@@ -1208,7 +1208,7 @@ var Tether = extend(TetherClass, TetherBase);
12081208

12091209
'use strict';
12101210

1211-
function _slicedToArray(arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }
1211+
var _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();
12121212

12131213
var _TetherBase$Utils = TetherBase.Utils;
12141214
var getBounds = _TetherBase$Utils.getBounds;
@@ -1302,7 +1302,7 @@ TetherBase.modules.push({
13021302

13031303
allClasses.forEach(function (cls) {
13041304
['left', 'top', 'right', 'bottom'].forEach(function (side) {
1305-
allClasses.push('' + cls + '-' + side);
1305+
allClasses.push(cls + '-' + side);
13061306
});
13071307
});
13081308

@@ -1527,7 +1527,7 @@ TetherBase.modules.push({
15271527

15281528
addClasses.push(pinnedClass);
15291529
pinned.forEach(function (side) {
1530-
addClasses.push('' + pinnedClass + '-' + side);
1530+
addClasses.push(pinnedClass + '-' + side);
15311531
});
15321532
})();
15331533
}
@@ -1543,7 +1543,7 @@ TetherBase.modules.push({
15431543

15441544
addClasses.push(oobClass);
15451545
oob.forEach(function (side) {
1546-
addClasses.push('' + oobClass + '-' + side);
1546+
addClasses.push(oobClass + '-' + side);
15471547
});
15481548
})();
15491549
}
@@ -1623,15 +1623,15 @@ TetherBase.modules.push({
16231623
var sides = ['left', 'top', 'right', 'bottom'];
16241624
allClasses.push(this.getClass('abutted'));
16251625
sides.forEach(function (side) {
1626-
allClasses.push('' + _this.getClass('abutted') + '-' + side);
1626+
allClasses.push(_this.getClass('abutted') + '-' + side);
16271627
});
16281628

16291629
if (abutted.length) {
16301630
addClasses.push(this.getClass('abutted'));
16311631
}
16321632

16331633
abutted.forEach(function (side) {
1634-
addClasses.push('' + _this.getClass('abutted') + '-' + side);
1634+
addClasses.push(_this.getClass('abutted') + '-' + side);
16351635
});
16361636

16371637
defer(function () {
@@ -1648,7 +1648,7 @@ TetherBase.modules.push({
16481648

16491649
'use strict';
16501650

1651-
function _slicedToArray(arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }
1651+
var _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();
16521652

16531653
TetherBase.modules.push({
16541654
position: function position(_ref) {

dist/js/tether.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "tether",
3-
"version": "1.0.2",
3+
"version": "1.1.0",
44
"description": "A client-side library to make absolutely positioned elements attach to elements in the page efficiently.",
55
"authors": [
66
"Zack Bloom <zackbloom@gmail.com>",

src/js/tether.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -730,7 +730,7 @@ class TetherClass {
730730
transcribe({top: true, left: true}, pos.page);
731731
}
732732

733-
if(!moved && this.element.parentNode.tagName !== 'BODY') {
733+
if(this.options.moveRoot !== false && !moved && this.element.parentNode.tagName !== 'BODY') {
734734
this.element.parentNode.removeChild(this.element);
735735
document.body.appendChild(this.element);
736736
}

0 commit comments

Comments
 (0)