summaryrefslogtreecommitdiff
path: root/templates/assets/tether/src/js/shift.js
diff options
context:
space:
mode:
Diffstat (limited to 'templates/assets/tether/src/js/shift.js')
-rw-r--r--templates/assets/tether/src/js/shift.js32
1 files changed, 32 insertions, 0 deletions
diff --git a/templates/assets/tether/src/js/shift.js b/templates/assets/tether/src/js/shift.js
new file mode 100644
index 0000000..ecc872d
--- /dev/null
+++ b/templates/assets/tether/src/js/shift.js
@@ -0,0 +1,32 @@
+/* globals TetherBase */
+
+TetherBase.modules.push({
+ position({top, left}) {
+ if (!this.options.shift) {
+ return;
+ }
+
+ let shift = this.options.shift;
+ if (typeof this.options.shift === 'function') {
+ shift = this.options.shift.call(this, {top, left});
+ }
+
+ let shiftTop, shiftLeft;
+ if (typeof shift === 'string') {
+ shift = shift.split(' ');
+ shift[1] = shift[1] || shift[0];
+
+ ([shiftTop, shiftLeft] = shift);
+
+ shiftTop = parseFloat(shiftTop, 10);
+ shiftLeft = parseFloat(shiftLeft, 10);
+ } else {
+ ([shiftTop, shiftLeft] = [shift.top, shift.left]);
+ }
+
+ top += shiftTop;
+ left += shiftLeft;
+
+ return {top, left};
+ }
+});