abraham 2.6.0 → 2.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/abraham/version.rb +1 -1
- data/vendor/assets/javascripts/js.cookie.js +165 -0
- data/vendor/assets/javascripts/shepherd.min.js +4 -0
- data/vendor/assets/javascripts/shepherd.min.js.map +1 -0
- data/vendor/assets/javascripts/smoothscroll.min.js +1 -0
- data/vendor/assets/javascripts/tether.min.js +4 -0
- metadata +6 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1b7258cdcacc3a3e5eeccf4770fa1bc09b5087d222cdabd15e1037ff8c64befa
|
4
|
+
data.tar.gz: f20bbd001591ca12351817dfee2e39741bbc2ec3ab8045642ebaeecd4c307814
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c4fe9743384c458f91a9a68e3ddc0e3eadced8d9bb75b0ba4154194f1384dba89d96e5af80e6d054118936c18cf7e166c26c9c2814a1818b9acc5617575d171
|
7
|
+
data.tar.gz: b03369da9b940e7795e0c9ddf9d742b95dd144b5dc23cc40b72863b9b0f9bd7522de461d12e4660d57b0bed7208f8acf220280d15c0ac681e608e2b223033ea6
|
data/lib/abraham/version.rb
CHANGED
@@ -0,0 +1,165 @@
|
|
1
|
+
/*!
|
2
|
+
* JavaScript Cookie v2.2.0
|
3
|
+
* https://github.com/js-cookie/js-cookie
|
4
|
+
*
|
5
|
+
* Copyright 2006, 2015 Klaus Hartl & Fagner Brack
|
6
|
+
* Released under the MIT license
|
7
|
+
*/
|
8
|
+
;(function (factory) {
|
9
|
+
var registeredInModuleLoader = false;
|
10
|
+
if (typeof define === 'function' && define.amd) {
|
11
|
+
define(factory);
|
12
|
+
registeredInModuleLoader = true;
|
13
|
+
}
|
14
|
+
if (typeof exports === 'object') {
|
15
|
+
module.exports = factory();
|
16
|
+
registeredInModuleLoader = true;
|
17
|
+
}
|
18
|
+
if (!registeredInModuleLoader) {
|
19
|
+
var OldCookies = window.Cookies;
|
20
|
+
var api = window.Cookies = factory();
|
21
|
+
api.noConflict = function () {
|
22
|
+
window.Cookies = OldCookies;
|
23
|
+
return api;
|
24
|
+
};
|
25
|
+
}
|
26
|
+
}(function () {
|
27
|
+
function extend () {
|
28
|
+
var i = 0;
|
29
|
+
var result = {};
|
30
|
+
for (; i < arguments.length; i++) {
|
31
|
+
var attributes = arguments[ i ];
|
32
|
+
for (var key in attributes) {
|
33
|
+
result[key] = attributes[key];
|
34
|
+
}
|
35
|
+
}
|
36
|
+
return result;
|
37
|
+
}
|
38
|
+
|
39
|
+
function init (converter) {
|
40
|
+
function api (key, value, attributes) {
|
41
|
+
var result;
|
42
|
+
if (typeof document === 'undefined') {
|
43
|
+
return;
|
44
|
+
}
|
45
|
+
|
46
|
+
// Write
|
47
|
+
|
48
|
+
if (arguments.length > 1) {
|
49
|
+
attributes = extend({
|
50
|
+
path: '/'
|
51
|
+
}, api.defaults, attributes);
|
52
|
+
|
53
|
+
if (typeof attributes.expires === 'number') {
|
54
|
+
var expires = new Date();
|
55
|
+
expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);
|
56
|
+
attributes.expires = expires;
|
57
|
+
}
|
58
|
+
|
59
|
+
// We're using "expires" because "max-age" is not supported by IE
|
60
|
+
attributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';
|
61
|
+
|
62
|
+
try {
|
63
|
+
result = JSON.stringify(value);
|
64
|
+
if (/^[\{\[]/.test(result)) {
|
65
|
+
value = result;
|
66
|
+
}
|
67
|
+
} catch (e) {}
|
68
|
+
|
69
|
+
if (!converter.write) {
|
70
|
+
value = encodeURIComponent(String(value))
|
71
|
+
.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);
|
72
|
+
} else {
|
73
|
+
value = converter.write(value, key);
|
74
|
+
}
|
75
|
+
|
76
|
+
key = encodeURIComponent(String(key));
|
77
|
+
key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);
|
78
|
+
key = key.replace(/[\(\)]/g, escape);
|
79
|
+
|
80
|
+
var stringifiedAttributes = '';
|
81
|
+
|
82
|
+
for (var attributeName in attributes) {
|
83
|
+
if (!attributes[attributeName]) {
|
84
|
+
continue;
|
85
|
+
}
|
86
|
+
stringifiedAttributes += '; ' + attributeName;
|
87
|
+
if (attributes[attributeName] === true) {
|
88
|
+
continue;
|
89
|
+
}
|
90
|
+
stringifiedAttributes += '=' + attributes[attributeName];
|
91
|
+
}
|
92
|
+
return (document.cookie = key + '=' + value + stringifiedAttributes);
|
93
|
+
}
|
94
|
+
|
95
|
+
// Read
|
96
|
+
|
97
|
+
if (!key) {
|
98
|
+
result = {};
|
99
|
+
}
|
100
|
+
|
101
|
+
// To prevent the for loop in the first place assign an empty array
|
102
|
+
// in case there are no cookies at all. Also prevents odd result when
|
103
|
+
// calling "get()"
|
104
|
+
var cookies = document.cookie ? document.cookie.split('; ') : [];
|
105
|
+
var rdecode = /(%[0-9A-Z]{2})+/g;
|
106
|
+
var i = 0;
|
107
|
+
|
108
|
+
for (; i < cookies.length; i++) {
|
109
|
+
var parts = cookies[i].split('=');
|
110
|
+
var cookie = parts.slice(1).join('=');
|
111
|
+
|
112
|
+
if (!this.json && cookie.charAt(0) === '"') {
|
113
|
+
cookie = cookie.slice(1, -1);
|
114
|
+
}
|
115
|
+
|
116
|
+
try {
|
117
|
+
var name = parts[0].replace(rdecode, decodeURIComponent);
|
118
|
+
cookie = converter.read ?
|
119
|
+
converter.read(cookie, name) : converter(cookie, name) ||
|
120
|
+
cookie.replace(rdecode, decodeURIComponent);
|
121
|
+
|
122
|
+
if (this.json) {
|
123
|
+
try {
|
124
|
+
cookie = JSON.parse(cookie);
|
125
|
+
} catch (e) {}
|
126
|
+
}
|
127
|
+
|
128
|
+
if (key === name) {
|
129
|
+
result = cookie;
|
130
|
+
break;
|
131
|
+
}
|
132
|
+
|
133
|
+
if (!key) {
|
134
|
+
result[name] = cookie;
|
135
|
+
}
|
136
|
+
} catch (e) {}
|
137
|
+
}
|
138
|
+
|
139
|
+
return result;
|
140
|
+
}
|
141
|
+
|
142
|
+
api.set = api;
|
143
|
+
api.get = function (key) {
|
144
|
+
return api.call(api, key);
|
145
|
+
};
|
146
|
+
api.getJSON = function () {
|
147
|
+
return api.apply({
|
148
|
+
json: true
|
149
|
+
}, [].slice.call(arguments));
|
150
|
+
};
|
151
|
+
api.defaults = {};
|
152
|
+
|
153
|
+
api.remove = function (key, attributes) {
|
154
|
+
api(key, '', extend(attributes, {
|
155
|
+
expires: -1
|
156
|
+
}));
|
157
|
+
};
|
158
|
+
|
159
|
+
api.withConverter = init;
|
160
|
+
|
161
|
+
return api;
|
162
|
+
}
|
163
|
+
|
164
|
+
return init(function () {});
|
165
|
+
}));
|
@@ -0,0 +1,4 @@
|
|
1
|
+
/*! shepherd.js 6.0.0 */
|
2
|
+
|
3
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).Shepherd=e()}(this,(function(){"use strict";function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function e(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}function n(){return(n=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t}).apply(this,arguments)}function o(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}function i(t){return(i=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function r(t,e){return(r=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t,e,n){return(s=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}()?Reflect.construct:function(t,e,n){var o=[null];o.push.apply(o,e);var i=new(Function.bind.apply(t,o));return n&&r(i,n.prototype),i}).apply(null,arguments)}function l(t){var e="function"==typeof Map?new Map:void 0;return(l=function(t){if(null===t||(n=t,-1===Function.toString.call(n).indexOf("[native code]")))return t;var n;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,o)}function o(){return s(t,arguments,i(this).constructor)}return o.prototype=Object.create(t.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),r(o,t)})(t)}function a(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function c(t){return void 0===t}var f=function(){function t(){}var e=t.prototype;return e.on=function(t,e,n,o){return void 0===o&&(o=!1),c(this.bindings)&&(this.bindings={}),c(this.bindings[t])&&(this.bindings[t]=[]),this.bindings[t].push({handler:e,ctx:n,once:o}),this},e.once=function(t,e,n){return this.on(t,e,n,!0)},e.off=function(t,e){var n=this;return c(this.bindings)||c(this.bindings[t])?this:(c(e)?delete this.bindings[t]:this.bindings[t].forEach((function(o,i){o.handler===e&&n.bindings[t].splice(i,1)})),this)},e.trigger=function(t){for(var e=this,n=arguments.length,o=new Array(n>1?n-1:0),i=1;i<n;i++)o[i-1]=arguments[i];return!c(this.bindings)&&this.bindings[t]&&this.bindings[t].forEach((function(n,i){var r=n.ctx,s=n.handler,l=n.once,a=r||e;s.apply(a,o),l&&e.bindings[t].splice(i,1)})),this},t}();function h(t){for(var e=Object.getOwnPropertyNames(t.constructor.prototype),n=0;n<e.length;n++){var o=e[n],i=t[o];"constructor"!==o&&"function"==typeof i&&(t[o]=i.bind(t))}return t}function p(t){return t instanceof HTMLElement}function u(t){return"function"==typeof t}function d(t){return"string"==typeof t}function g(t){return void 0===t}function m(t){var e=t.options.advanceOn||{},n=e.event,o=e.selector;if(!n)return console.error("advanceOn was defined, but no event name was passed.");var i,r=function(t,e){return function(n){if(e.isOpen()){var o=e.el&&n.currentTarget===e.el;(!g(t)&&n.currentTarget.matches(t)||o)&&e.tour.next()}}}(o,t);try{i=document.querySelector(o)}catch(t){}if(!g(o)&&!i)return console.error("No element was found for the selector supplied to advanceOn: "+o);i?(i.addEventListener(n,r),t.on("destroy",(function(){return i.removeEventListener(n,r)}))):(document.body.addEventListener(n,r,!0),t.on("destroy",(function(){return document.body.removeEventListener(n,r,!0)})))}function v(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function b(t){return"string"==typeof t}function y(t){return void 0===t}function w(t,e){e.split(" ").forEach((function(e){e.trim()&&t.classList.add(e)}))}function x(t,e,n){return void 0===t&&(t=""),y(e)||y(e[t])?n?n+"-"+t:t:!1===e[t]?"":e[t]}function E(t,e){e.split(" ").forEach((function(e){e.trim()&&t.classList.remove(e)}))}function O(t,e,n){n.forEach((function(n){-1===e.indexOf(n)&&t.classList.contains(n)&&E(t,n)})),e.forEach((function(e){t.classList.contains(e)||w(t,e)}))}var I=[];function $(t){I.push(t)}function _(){for(var t;t=I.pop();)t()}var T=null;function C(t){void 0===t&&(t={});var e=[];return Array.prototype.push.apply(e,arguments),e.slice(1).forEach((function(e){if(e)for(var n in e)({}).hasOwnProperty.call(e,n)&&(t[n]=e[n])})),t}function P(){if(T)return T;var t=document.createElement("div");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");C(e.style,{position:"absolute",top:0,left:0,pointerEvents:"none",visibility:"hidden",width:"200px",height:"150px",overflow:"hidden"}),e.appendChild(t),document.body.appendChild(e);var n=t.offsetWidth;e.style.overflow="scroll";var o=t.offsetWidth;n===o&&(o=e.clientWidth),document.body.removeChild(e);var i=n-o;return T={width:i,height:i}}var S,M=(S=0,function(){return++S}),A={},L=null;function F(t){var e;t===document?(e=document,t=document.documentElement):e=t.ownerDocument;var n=e.documentElement,o=k(t),i=function(){var t=L;t&&document.body.contains(t)||((t=document.createElement("div")).setAttribute("data-tether-id",M()),C(t.style,{top:0,left:0,position:"absolute"}),document.body.appendChild(t),L=t);var e=t.getAttribute("data-tether-id");y(A[e])&&(A[e]=k(t),$((function(){delete A[e]})));return A[e]}();return o.top-=i.top,o.left-=i.left,y(o.width)&&(o.width=document.body.scrollWidth-o.left-o.right),y(o.height)&&(o.height=document.body.scrollHeight-o.top-o.bottom),o.top=o.top-n.clientTop,o.left=o.left-n.clientLeft,o.right=e.body.clientWidth-o.width-o.left,o.bottom=e.body.clientHeight-o.height-o.top,o}function k(t){var e=t.getBoundingClientRect(),n={};for(var o in e)n[o]=e[o];try{if(t.ownerDocument!==document){var i=t.ownerDocument.defaultView.frameElement;if(i){var r=k(i);n.top+=r.top,n.bottom+=r.top,n.left+=r.left,n.right+=r.left}}}catch(t){}return n}var H={position:function(t){var e=this,n=t.top,o=t.left,i=this.cache("element-bounds",(function(){return F(e.element)})),r=i.height,s=i.width,l=this.getTargetBounds(),a=n+r,c=o+s,f=[];n<=l.bottom&&a>=l.top&&["left","right"].forEach((function(t){var e=l[t];e!==o&&e!==c||f.push(t)})),o<=l.right&&c>=l.left&&["top","bottom"].forEach((function(t){var e=l[t];e!==n&&e!==a||f.push(t)}));var h=this.options,p=h.classes,u=h.classPrefix;return this.all.push(x("abutted",p,u)),["left","top","right","bottom"].forEach((function(t){e.all.push(x("abutted",p,u)+"-"+t)})),f.length&&this.add.push(x("abutted",p,u)),f.forEach((function(t){e.add.push(x("abutted",p,u)+"-"+t)})),$((function(){!1!==e.options.addTargetClasses&&O(e.target,e.add,e.all),O(e.element,e.add,e.all)})),!0}},B=["left","top","right","bottom"];var Y={position:function(t){var e=this,n=t.top,o=t.left,i=t.targetAttachment;if(!this.options.constraints)return!0;var r=this.cache("element-bounds",(function(){return F(e.element)})),s=r.height,l=r.width;if(0===l&&0===s&&!y(this.lastSize)){var a=this.lastSize;l=a.width,s=a.height}var c=this.cache("target-bounds",(function(){return e.getTargetBounds()})),f=c.height,h=c.width,p=this.options,u=p.classes,d=p.classPrefix,g=function(t,e,n){var o=[x("pinned",t,e),x("out-of-bounds",t,e)];return n.forEach((function(t){var e=t.outOfBoundsClass,n=t.pinnedClass;e&&o.push(e),n&&o.push(n)})),o.forEach((function(t){["left","top","right","bottom"].forEach((function(e){o.push(t+"-"+e)}))})),o}(u,d,this.options.constraints),m=[],v=C({},i),w=C({},this.attachment);return this.options.constraints.forEach((function(t){var r,a,c=t.to,p=t.attachment,g=t.pin;if(y(p)&&(p=""),p.indexOf(" ")>=0){var E=p.split(" ");a=E[0],r=E[1]}else r=a=p;var O=function(t,e){if("scrollParent"===e?e=t.scrollParents[0]:"window"===e&&(e=[pageXOffset,pageYOffset,innerWidth+pageXOffset,innerHeight+pageYOffset]),e===document&&(e=e.documentElement),!y(e.nodeType)){var n=e,o=F(e),i=o,r=getComputedStyle(e);if(e=[i.left,i.top,o.width+i.left,o.height+i.top],n.ownerDocument!==document){var s=n.ownerDocument.defaultView;e[0]+=s.pageXOffset,e[1]+=s.pageYOffset,e[2]+=s.pageXOffset,e[3]+=s.pageYOffset}B.forEach((function(t,n){"Top"===(t=t[0].toUpperCase()+t.substr(1))||"Left"===t?e[n]+=parseFloat(r["border"+t+"Width"]):e[n]-=parseFloat(r["border"+t+"Width"])}))}return e}(e,c);"target"!==a&&"both"!==a||(n<O[1]&&"top"===v.top&&(n+=f,v.top="bottom"),n+s>O[3]&&"bottom"===v.top&&(n-=f,v.top="top")),"together"===a&&(n=function(t,e,n,o,i,r){return"top"===t.top&&("bottom"===e.top&&r<n[1]?(r+=i,t.top="bottom",r+=o,e.top="top"):"top"===e.top&&r+o>n[3]&&r-(o-i)>=n[1]&&(r-=o-i,t.top="bottom",e.top="bottom")),"bottom"===t.top&&("top"===e.top&&r+o>n[3]?(r-=i,t.top="top",r-=o,e.top="bottom"):"bottom"===e.top&&r<n[1]&&r+(2*o-i)<=n[3]&&(r+=o-i,t.top="top",e.top="top")),"middle"===t.top&&(r+o>n[3]&&"top"===e.top?(r-=o,e.top="bottom"):r<n[1]&&"bottom"===e.top&&(r+=o,e.top="top")),r}(v,w,O,s,f,n)),"target"!==r&&"both"!==r||(o<O[0]&&"left"===v.left&&(o+=h,v.left="right"),o+l>O[2]&&"right"===v.left&&(o-=h,v.left="left")),"together"===r&&(o=function(t,e,n,o,i,r){return r<n[0]&&"left"===t.left?"right"===e.left?(r+=i,t.left="right",r+=o,e.left="left"):"left"===e.left&&(r+=i,t.left="right",r-=o,e.left="right"):r+o>n[2]&&"right"===t.left?"left"===e.left?(r-=i,t.left="left",r-=o,e.left="right"):"right"===e.left&&(r-=i,t.left="left",r+=o,e.left="left"):"center"===t.left&&(r+o>n[2]&&"left"===e.left?(r-=o,e.left="right"):r<n[0]&&"right"===e.left&&(r+=o,e.left="left")),r}(v,w,O,l,h,o)),"element"!==a&&"both"!==a||(n<O[1]&&"bottom"===w.top&&(n+=s,w.top="top"),n+s>O[3]&&"top"===w.top&&(n-=s,w.top="bottom")),"element"!==r&&"both"!==r||(o<O[0]&&("right"===w.left?(o+=l,w.left="left"):"center"===w.left&&(o+=l/2,w.left="left")),o+l>O[2]&&("left"===w.left?(o-=l,w.left="right"):"center"===w.left&&(o-=l/2,w.left="right"))),b(g)?g=g.split(",").map((function(t){return t.trim()})):!0===g&&(g=["top","left","right","bottom"]);var I,$=[],_=[];(o=function(t,e,n,o,i,r){return t<e[0]&&(o.indexOf("left")>=0?(t=e[0],i.push("left")):r.push("left")),t+n>e[2]&&(o.indexOf("right")>=0?(t=e[2]-n,i.push("right")):r.push("right")),t}(o,O,l,g=g||[],$,_),n=function(t,e,n,o,i,r){return t<e[1]&&(o.indexOf("top")>=0?(t=e[1],i.push("top")):r.push("top")),t+n>e[3]&&(o.indexOf("bottom")>=0?(t=e[3]-n,i.push("bottom")):r.push("bottom")),t}(n,O,s,g,$,_),$.length)&&(I=y(e.options.pinnedClass)?x("pinned",u,d):e.options.pinnedClass,m.push(I),$.forEach((function(t){m.push(I+"-"+t)})));!function(t,e,n,o,i){var r;t.length&&(r=y(i)?x("out-of-bounds",n,o):i,e.push(r),t.forEach((function(t){e.push(r+"-"+t)})))}(_,m,u,d,e.options.outOfBoundsClass),($.indexOf("left")>=0||$.indexOf("right")>=0)&&(w.left=v.left=!1),($.indexOf("top")>=0||$.indexOf("bottom")>=0)&&(w.top=v.top=!1),v.top===i.top&&v.left===i.left&&w.top===e.attachment.top&&w.left===e.attachment.left||(e.updateAttachClasses(w,v),e.trigger("update",{attachment:w,targetAttachment:v}))})),$((function(){!1!==e.options.addTargetClasses&&O(e.target,m,g),O(e.element,m,g)})),{top:n,left:o}}},j={position:function(t){var e=t.top,n=t.left;if(this.options.shift){var o,i,r=this.options.shift;if("function"==typeof r&&(r=r.call(this,{top:e,left:n})),b(r)){(r=r.split(" "))[1]=r[1]||r[0];var s=r;o=s[0],i=s[1],o=parseFloat(o,10),i=parseFloat(i,10)}else{var l=[r.top,r.left];o=l[0],i=l[1]}return{top:e+=o,left:n+=i}}}},W=function(){function t(){}var e=t.prototype;return e.on=function(t,e,n,o){return void 0===o&&(o=!1),y(this.bindings)&&(this.bindings={}),y(this.bindings[t])&&(this.bindings[t]=[]),this.bindings[t].push({handler:e,ctx:n,once:o}),this},e.once=function(t,e,n){return this.on(t,e,n,!0)},e.off=function(t,e){var n=this;return y(this.bindings)||y(this.bindings[t])?this:(y(e)?delete this.bindings[t]:this.bindings[t].forEach((function(o,i){o.handler===e&&n.bindings[t].splice(i,1)})),this)},e.trigger=function(t){for(var e=this,n=arguments.length,o=new Array(n>1?n-1:0),i=1;i<n;i++)o[i-1]=arguments[i];return!y(this.bindings)&&this.bindings[t]&&this.bindings[t].forEach((function(n,i){var r=n.ctx,s=n.handler,l=n.once,a=r||e;s.apply(a,o),l&&e.bindings[t].splice(i,1)})),this},t}(),X={center:"center",left:"right",right:"left"},D={middle:"middle",top:"bottom",bottom:"top"},z={top:0,left:0,middle:"50%",center:"50%",bottom:"100%",right:"100%"};function N(){for(var t={top:0,left:0},e=arguments.length,n=new Array(e),o=0;o<e;o++)n[o]=arguments[o];return n.forEach((function(e){var n=e.top,o=e.left;b(n)&&(n=parseFloat(n)),b(o)&&(o=parseFloat(o)),t.top+=n,t.left+=o})),t}function R(t){var e=t.left,n=t.top;return y(z[t.left])||(e=z[t.left]),y(z[t.top])||(n=z[t.top]),{left:e,top:n}}function V(t,e){return b(t.left)&&-1!==t.left.indexOf("%")&&(t.left=parseFloat(t.left)/100*e.width),b(t.top)&&-1!==t.top.indexOf("%")&&(t.top=parseFloat(t.top)/100*e.height),t}function q(t){var e=t.split(" ");return{top:e[0],left:e[1]}}function Z(t){return t.offsetParent||document.documentElement}var K={modules:[Y,H,j]};var U,G,J,Q,tt=function(){if(y(document))return"";for(var t=document.createElement("div"),e=["transform","WebkitTransform","OTransform","MozTransform","msTransform"],n=0;n<e.length;++n){var o=e[n];if(void 0!==t.style[o])return o}}(),et=[],nt=function(){et.forEach((function(t){t.position(!1)})),_()};function ot(){return performance.now()}U=null,G=null,J=null,Q=function t(){if(!y(G)&&G>16)return G=Math.min(G-16,250),void(J=setTimeout(t,250));!y(U)&&ot()-U<10||(null!=J&&(clearTimeout(J),J=null),U=ot(),nt(),G=ot()-U)},y(window)||y(window.addEventListener)||["resize","scroll","touchmove"].forEach((function(t){window.addEventListener(t,Q)}));var it=function(t){var e,n;function o(e){var n;return(n=t.call(this)||this).position=n.position.bind(v(n)),et.push(v(n)),n.history=[],n.setOptions(e,!1),K.modules.forEach((function(t){y(t.initialize)||t.initialize.call(v(n))})),n.position(),n}n=t,(e=o).prototype=Object.create(n.prototype),e.prototype.constructor=e,e.__proto__=n;var i=o.prototype;return i.setOptions=function(t,e){var n=this;void 0===e&&(e=!0);this.options=C({offset:"0 0",targetOffset:"0 0",targetAttachment:"auto auto",classPrefix:"tether"},t);var o=this.options,i=o.element,r=o.target,s=o.targetModifier;if(this.element=i,this.target=r,this.targetModifier=s,"viewport"===this.target?(this.target=document.body,this.targetModifier="visible"):"scroll-handle"===this.target&&(this.target=document.body,this.targetModifier="scroll-handle"),["element","target"].forEach((function(t){if(y(n[t]))throw new Error("Tether Error: Both element and target must be defined");y(n[t].jquery)?b(n[t])&&(n[t]=document.querySelector(n[t])):n[t]=n[t][0]})),this._addClasses(),!this.options.attachment)throw new Error("Tether Error: You must provide an attachment");this.targetAttachment=q(this.options.targetAttachment),this.attachment=q(this.options.attachment),this.offset=q(this.options.offset),this.targetOffset=q(this.options.targetOffset),y(this.scrollParents)||this.disable(),"scroll-handle"===this.targetModifier?this.scrollParents=[this.target]:this.scrollParents=function(t){var e=(getComputedStyle(t)||{}).position,n=[];if("fixed"===e)return[t];for(var o=t;(o=o.parentNode)&&o&&1===o.nodeType;){var i=void 0;try{i=getComputedStyle(o)}catch(t){}if(y(i)||null===i)return n.push(o),n;var r=i,s=r.overflow,l=r.overflowX,a=r.overflowY;/(auto|scroll|overlay)/.test(s+a+l)&&("absolute"!==e||["relative","absolute","fixed"].indexOf(i.position)>=0)&&n.push(o)}return n.push(t.ownerDocument.body),t.ownerDocument!==document&&n.push(t.ownerDocument.defaultView),n}(this.target),!1!==this.options.enabled&&this.enable(e)},i.getTargetBounds=function(){return y(this.targetModifier)?F(this.target):"visible"===this.targetModifier?function(t){if(t===document.body)return{top:pageYOffset,left:pageXOffset,height:innerHeight,width:innerWidth};var e=F(t),n={height:e.height,width:e.width,top:e.top,left:e.left};return n.height=Math.min(n.height,e.height-(pageYOffset-e.top)),n.height=Math.min(n.height,e.height-(e.top+e.height-(pageYOffset+innerHeight))),n.height=Math.min(innerHeight,n.height),n.height-=2,n.width=Math.min(n.width,e.width-(pageXOffset-e.left)),n.width=Math.min(n.width,e.width-(e.left+e.width-(pageXOffset+innerWidth))),n.width=Math.min(innerWidth,n.width),n.width-=2,n.top<pageYOffset&&(n.top=pageYOffset),n.left<pageXOffset&&(n.left=pageXOffset),n}(this.target):"scroll-handle"===this.targetModifier?function(t){var e,n=t.scrollTop,o=t===document.body;o?(t=document.documentElement,e={left:pageXOffset,top:pageYOffset,height:innerHeight,width:innerWidth}):e=F(t);var i=getComputedStyle(t),r=0;(t.scrollWidth>t.clientWidth||[i.overflow,i.overflowX].indexOf("scroll")>=0||!o)&&(r=15);var s=e.height-parseFloat(i.borderTopWidth)-parseFloat(i.borderBottomWidth)-r,l={width:15,height:.975*s*(s/t.scrollHeight),left:e.left+e.width-parseFloat(i.borderLeftWidth)-15},a=0;s<408&&o&&(a=-11e-5*Math.pow(s,2)-.00727*s+22.58),o||(l.height=Math.max(l.height,24));var c=n/(t.scrollHeight-s);return l.top=c*(s-l.height-a)+e.top+parseFloat(i.borderTopWidth),o&&(l.height=Math.max(l.height,24)),l}(this.target):void 0},i.clearCache=function(){this._cache={}},i.cache=function(t,e){return y(this._cache)&&(this._cache={}),y(this._cache[t])&&(this._cache[t]=e.call(this)),this._cache[t]},i.enable=function(t){var e=this;void 0===t&&(t=!0);var n=this.options,o=n.classes,i=n.classPrefix;!1!==this.options.addTargetClasses&&w(this.target,x("enabled",o,i)),w(this.element,x("enabled",o,i)),this.enabled=!0,this.scrollParents.forEach((function(t){t!==e.target.ownerDocument&&t.addEventListener("scroll",e.position)})),t&&this.position()},i.disable=function(){var t=this,e=this.options,n=e.classes,o=e.classPrefix;E(this.target,x("enabled",n,o)),E(this.element,x("enabled",n,o)),this.enabled=!1,y(this.scrollParents)||this.scrollParents.forEach((function(e){e.removeEventListener("scroll",t.position)}))},i.destroy=function(){var t=this;this.disable(),this._removeClasses(),et.forEach((function(e,n){e===t&&et.splice(n,1)})),0===et.length&&(L&&document.body.removeChild(L),L=null)},i.updateAttachClasses=function(t,e){var n=this;t=t||this.attachment,e=e||this.targetAttachment;var o=this.options,i=o.classes,r=o.classPrefix;!y(this._addAttachClasses)&&this._addAttachClasses.length&&this._addAttachClasses.splice(0,this._addAttachClasses.length),y(this._addAttachClasses)&&(this._addAttachClasses=[]),this.add=this._addAttachClasses,t.top&&this.add.push(x("element-attached",i,r)+"-"+t.top),t.left&&this.add.push(x("element-attached",i,r)+"-"+t.left),e.top&&this.add.push(x("target-attached",i,r)+"-"+e.top),e.left&&this.add.push(x("target-attached",i,r)+"-"+e.left),this.all=[],["left","top","bottom","right","middle","center"].forEach((function(t){n.all.push(x("element-attached",i,r)+"-"+t),n.all.push(x("target-attached",i,r)+"-"+t)})),$((function(){y(n._addAttachClasses)||(O(n.element,n._addAttachClasses,n.all),!1!==n.options.addTargetClasses&&O(n.target,n._addAttachClasses,n.all),delete n._addAttachClasses)}))},i.position=function(t){var e=this;if(void 0===t&&(t=!0),this.enabled){this.clearCache();var n=function(t,e){var n=t.left,o=t.top;return"auto"===n&&(n=X[e.left]),"auto"===o&&(o=D[e.top]),{left:n,top:o}}(this.targetAttachment,this.attachment);this.updateAttachClasses(this.attachment,n);var o=this.cache("element-bounds",(function(){return F(e.element)})),i=o.width,r=o.height;if(0!==i||0!==r||y(this.lastSize))this.lastSize={width:i,height:r};else{var s=this.lastSize;i=s.width,r=s.height}var l=this.cache("target-bounds",(function(){return e.getTargetBounds()})),a=l,c=V(R(this.attachment),{width:i,height:r}),f=V(R(n),a),h=V(this.offset,{width:i,height:r}),p=V(this.targetOffset,a);c=N(c,h),f=N(f,p);for(var u=l.left+f.left-c.left,d=l.top+f.top-c.top,g=0;g<K.modules.length;++g){var m=K.modules[g].position.call(this,{left:u,top:d,targetAttachment:n,targetPos:l,elementPos:o,offset:c,targetOffset:f,manualOffset:h,manualTargetOffset:p,scrollbarSize:v,attachment:this.attachment});if(!1===m)return!1;y(m)||"object"!=typeof m||(d=m.top,u=m.left)}var v,b={page:{top:d,left:u},viewport:{top:d-pageYOffset,bottom:pageYOffset-d-r+innerHeight,left:u-pageXOffset,right:pageXOffset-u-i+innerWidth}},w=this.target.ownerDocument,x=w.defaultView;if(x.innerHeight>w.documentElement.clientHeight&&(v=this.cache("scrollbar-size",P),b.viewport.bottom-=v.height),x.innerWidth>w.documentElement.clientWidth&&(v=this.cache("scrollbar-size",P),b.viewport.right-=v.width),-1!==["","static"].indexOf(w.body.style.position)&&-1!==["","static"].indexOf(w.body.parentElement.style.position)||(b.page.bottom=w.body.scrollHeight-d-r,b.page.right=w.body.scrollWidth-u-i),!y(this.options.optimizations)&&!1!==this.options.optimizations.moveElement&&y(this.targetModifier)){var E=this.cache("target-offsetparent",(function(){return Z(e.target)})),O=this.cache("target-offsetparent-bounds",(function(){return F(E)})),I=getComputedStyle(E),$=O,T={};if(["Top","Left","Bottom","Right"].forEach((function(t){T[t.toLowerCase()]=parseFloat(I["border"+t+"Width"])})),O.right=w.body.scrollWidth-O.left-$.width+T.right,O.bottom=w.body.scrollHeight-O.top-$.height+T.bottom,b.page.top>=O.top+T.top&&b.page.bottom>=O.bottom&&b.page.left>=O.left+T.left&&b.page.right>=O.right){var C=E.scrollLeft,S=E.scrollTop;b.offset={top:b.page.top-O.top+S-T.top,left:b.page.left-O.left+C-T.left}}}return this.move(b),this.history.unshift(b),this.history.length>3&&this.history.pop(),t&&_(),!0}},i.move=function(t){var e=this;if(!y(this.element.parentNode)){var n,o,i,r={};for(var s in t)for(var l in r[s]={},t[s]){for(var a=!1,c=0;c<this.history.length;++c){var f=this.history[c];if(!(y(f[s])||(n=f[s][l],o=t[s][l],i=void 0,void 0===i&&(i=1),n+i>=o&&o>=n-i))){a=!0;break}}a||(r[s][l]=!0)}var h={top:"",left:"",right:"",bottom:""},p=function(t,n){var o,i;!1!==(!y(e.options.optimizations)?e.options.optimizations.gpu:null)?(t.top?(h.top=0,o=n.top):(h.bottom=0,o=-n.bottom),t.left?(h.left=0,i=n.left):(h.right=0,i=-n.right),"number"==typeof window.devicePixelRatio&&devicePixelRatio%1==0&&(i=Math.round(i*devicePixelRatio)/devicePixelRatio,o=Math.round(o*devicePixelRatio)/devicePixelRatio),h[tt]="translateX("+i+"px) translateY("+o+"px)","msTransform"!==tt&&(h[tt]+=" translateZ(0)")):(t.top?h.top=n.top+"px":h.bottom=n.bottom+"px",t.left?h.left=n.left+"px":h.right=n.right+"px")},u=!0;!y(this.options.optimizations)&&!1===this.options.optimizations.allowPositionFixed&&(u=!1);var d,g,m=!1;if((r.page.top||r.page.bottom)&&(r.page.left||r.page.right))h.position="absolute",p(r.page,t.page);else if(u&&(r.viewport.top||r.viewport.bottom)&&(r.viewport.left||r.viewport.right))h.position="fixed",p(r.viewport,t.viewport);else if(!y(r.offset)&&r.offset.top&&r.offset.left){h.position="absolute";var v=this.cache("target-offsetparent",(function(){return Z(e.target)}));Z(this.element)!==v&&$((function(){e.element.parentNode.removeChild(e.element),v.appendChild(e.element)})),p(r.offset,t.offset),m=!0}else h.position="absolute",p({top:!0,left:!0},t.page);if(!m)if(this.options.bodyElement)this.element.parentNode!==this.options.bodyElement&&this.options.bodyElement.appendChild(this.element);else{for(var b=!0,w=this.element.parentNode;w&&1===w.nodeType&&"BODY"!==w.tagName&&(g=void 0,((g=(d=w).ownerDocument).fullscreenElement||g.webkitFullscreenElement||g.mozFullScreenElement||g.msFullscreenElement)!==d);){if("static"!==getComputedStyle(w).position){b=!1;break}w=w.parentNode}b||(this.element.parentNode.removeChild(this.element),this.element.ownerDocument.body.appendChild(this.element))}var x={},E=!1;for(var O in h){var I=h[O];this.element.style[O]!==I&&(E=!0,x[O]=I)}E&&$((function(){C(e.element.style,x),e.trigger("repositioned")}))}},i._addClasses=function(){var t=this.options,e=t.classes,n=t.classPrefix;w(this.element,x("element",e,n)),!1!==this.options.addTargetClasses&&w(this.target,x("target",e,n))},i._removeClasses=function(){var t=this,e=this.options,n=e.classes,o=e.classPrefix;E(this.element,x("element",n,o)),!1!==this.options.addTargetClasses&&E(this.target,x("target",n,o)),this.all.forEach((function(e){t.element.classList.remove(e),t.target.classList.remove(e)}))},o}(W);it.modules=[],K.position=nt;var rt=C(it,K);rt.modules.push({initialize:function(){var t=this,e=this.options,n=e.classes,o=e.classPrefix;this.markers={},["target","element"].forEach((function(e){var i=document.createElement("div");i.className=x(e+"-marker",n,o);var r=document.createElement("div");r.className=x("marker-dot",n,o),i.appendChild(r),t[e].appendChild(i),t.markers[e]={dot:r,el:i}}))},position:function(t){var e={element:t.manualOffset,target:t.manualTargetOffset};for(var n in e){var o=e[n];for(var i in o){var r=o[i];(!b(r)||-1===r.indexOf("%")&&-1===r.indexOf("px"))&&(r+="px"),this.markers[n].dot.style[i]!==r&&(this.markers[n].dot.style[i]=r)}}return!0}});var st,lt={bottom:"top center","bottom center":"top center","bottom left":"top right","bottom right":"top left",center:"middle center",left:"middle right",middle:"middle center","middle center":"middle center","middle left":"middle right","middle right":"middle left",right:"middle left",top:"bottom center","top center":"bottom center","top left":"bottom right","top right":"bottom left"};function at(t){return d(t)&&""!==t?"-"!==t.charAt(t.length-1)?t+"-":t:""}function ct(t){var e=t.options.attachTo||{},n=Object.assign({},e);if(d(e.element)){try{n.element=document.querySelector(e.element)}catch(t){}n.element||console.error("The element for this Shepherd step was not found "+e.element)}return n}function ft(t){t.tooltip&&t.tooltip.destroy();var e=ct(t),o=function(t,e){var o={classPrefix:"shepherd",constraints:[{to:"scrollParent",attachment:"together",pin:["left","right","top"]},{to:"window",attachment:"together"}]},i=document.body;t.element&&t.on?(o.attachment=lt[t.on]||lt.right,i=t.element):(o.attachment="middle center",o.targetModifier="visible");o.element=e.el,o.target=i,e.options.tetherOptions&&(e.options.tetherOptions.constraints&&(o.constraints=e.options.tetherOptions.constraints),o.classes=n({},o.classes,{},e.options.tetherOptions.classes),o.optimizations=n({},o.optimizations,{},e.options.tetherOptions.optimizations),o=n({},o,{},e.options.tetherOptions));return o}(e,t);t.tooltip=new rt(o),t.target=e.element}function ht(){var t=Date.now();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var n=(t+16*Math.random())%16|0;return t=Math.floor(t/16),("x"==e?n:3&n|8).toString(16)}))}function pt(){}function ut(t,e){for(var n in e)t[n]=e[n];return t}function dt(t){return t()}function gt(){return Object.create(null)}function mt(t){t.forEach(dt)}function vt(t){return"function"==typeof t}function bt(t,e){return t!=t?e==e:t!==e||t&&"object"==typeof t||"function"==typeof t}function yt(t,e){t.appendChild(e)}function wt(t,e,n){t.insertBefore(e,n||null)}function xt(t){t.parentNode.removeChild(t)}function Et(t){return document.createElement(t)}function Ot(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function It(t){return document.createTextNode(t)}function $t(){return It(" ")}function _t(t,e,n,o){return t.addEventListener(e,n,o),function(){return t.removeEventListener(e,n,o)}}function Tt(t,e,n){null==n?t.removeAttribute(e):t.setAttribute(e,n)}function Ct(t,e){for(var n in e)"style"===n?t.style.cssText=e[n]:n in t?t[n]=e[n]:Tt(t,n,e[n])}function Pt(t){st=t}function St(){if(!st)throw new Error("Function called outside component initialization");return st}function Mt(t){St().$$.after_update.push(t)}var At=[],Lt=[],Ft=[],kt=[],Ht=Promise.resolve(),Bt=!1;function Yt(t){Ft.push(t)}function jt(){var t=new Set;do{for(;At.length;){var e=At.shift();Pt(e),Wt(e.$$)}for(;Lt.length;)Lt.pop()();for(var n=0;n<Ft.length;n+=1){var o=Ft[n];t.has(o)||(o(),t.add(o))}Ft.length=0}while(At.length);for(;kt.length;)kt.pop()();Bt=!1}function Wt(t){t.fragment&&(t.update(t.dirty),mt(t.before_update),t.fragment.p(t.dirty,t.ctx),t.dirty=null,t.after_update.forEach(Yt))}var Xt,Dt=new Set;function zt(){Xt={r:0,c:[],p:Xt}}function Nt(){Xt.r||mt(Xt.c),Xt=Xt.p}function Rt(t,e){t&&t.i&&(Dt.delete(t),t.i(e))}function Vt(t,e,n,o){if(t&&t.o){if(Dt.has(t))return;Dt.add(t),Xt.c.push((function(){Dt.delete(t),o&&(n&&t.d(1),o())})),t.o(e)}}function qt(t,e,n){var o=t.$$,i=o.fragment,r=o.on_mount,s=o.on_destroy,l=o.after_update;i.m(e,n),Yt((function(){var e=r.map(dt).filter(vt);s?s.push.apply(s,e):mt(e),t.$$.on_mount=[]})),l.forEach(Yt)}function Zt(t,e){t.$$.fragment&&(mt(t.$$.on_destroy),t.$$.fragment.d(e),t.$$.on_destroy=t.$$.fragment=null,t.$$.ctx={})}function Kt(t,e){t.$$.dirty||(At.push(t),Bt||(Bt=!0,Ht.then(jt)),t.$$.dirty=gt()),t.$$.dirty[e]=!0}function Ut(t,e,n,o,i,r){var s=st;Pt(t);var l=e.props||{},a=t.$$={fragment:null,ctx:null,props:r,update:pt,not_equal:i,bound:gt(),on_mount:[],on_destroy:[],before_update:[],after_update:[],context:new Map(s?s.$$.context:[]),callbacks:gt(),dirty:null},c=!1;a.ctx=n?n(t,l,(function(e,n,o){return void 0===o&&(o=n),a.ctx&&i(a.ctx[e],a.ctx[e]=o)&&(a.bound[e]&&a.bound[e](o),c&&Kt(t,e)),n})):l,a.update(),c=!0,mt(a.before_update),a.fragment=o(a.ctx),e.target&&(e.hydrate?a.fragment.l(function(t){return Array.from(t.childNodes)}(e.target)):a.fragment.c(),e.intro&&Rt(t.$$.fragment),qt(t,e.target,e.anchor),jt()),Pt(s)}"undefined"!=typeof HTMLElement&&l(HTMLElement);var Gt=function(){function t(){}var e=t.prototype;return e.$destroy=function(){Zt(this,1),this.$destroy=pt},e.$on=function(t,e){var n=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return n.push(e),function(){var t=n.indexOf(e);-1!==t&&n.splice(t,1)}},e.$set=function(){},t}();function Jt(t){var e,n,o;return{c:function(){e=Et("button"),n=It(t.text),Tt(e,"aria-label",t.label?t.label:null),Tt(e,"class",(t.classes||"")+" shepherd-button "+(t.secondary?"shepherd-button-secondary":"")),e.disabled=t.disabled,Tt(e,"tabindex","0"),o=_t(e,"click",t.action?t.action.bind(t.step.tour):null)},m:function(t,o){wt(t,e,o),yt(e,n)},p:function(t,n){t.disabled&&(e.disabled=n.disabled)},i:pt,o:pt,d:function(t){t&&xt(e),o()}}}function Qt(t,e,n){var o=e.config,i=e.step,r=o,s=r.action,l=r.classes,a=r.secondary,c=r.text,f=r.label,h=!1;return Mt((function(){o.disabled&&(n("disabled",h=o.disabled),u(h)&&n("disabled",h=h.call(i)))})),t.$set=function(t){"config"in t&&n("config",o=t.config),"step"in t&&n("step",i=t.step)},{config:o,step:i,action:s,classes:l,secondary:a,text:c,label:f,disabled:h}}var te=function(t){function e(e){var n;return Ut(a(n=t.call(this)||this),e,Qt,Jt,bt,["config","step"]),n}return o(e,t),e}(Gt);function ee(t,e,n){var o=Object.create(t);return o.config=e[n],o}function ne(t){for(var e,n,o=t.buttons,i=[],r=0;r<o.length;r+=1)i[r]=oe(ee(t,o,r));var s=function(t){return Vt(i[t],1,1,(function(){i[t]=null}))};return{c:function(){for(var t=0;t<i.length;t+=1)i[t].c();e=It("")},m:function(t,o){for(var r=0;r<i.length;r+=1)i[r].m(t,o);wt(t,e,o),n=!0},p:function(t,n){if(t.buttons||t.step){var r;for(o=n.buttons,r=0;r<o.length;r+=1){var l=ee(n,o,r);i[r]?(i[r].p(t,l),Rt(i[r],1)):(i[r]=oe(l),i[r].c(),Rt(i[r],1),i[r].m(e.parentNode,e))}for(zt(),r=o.length;r<i.length;r+=1)s(r);Nt()}},i:function(t){if(!n){for(var e=0;e<o.length;e+=1)Rt(i[e]);n=!0}},o:function(t){i=i.filter(Boolean);for(var e=0;e<i.length;e+=1)Vt(i[e]);n=!1},d:function(t){!function(t,e){for(var n=0;n<t.length;n+=1)t[n]&&t[n].d(e)}(i,t),t&&xt(e)}}}function oe(t){var e,n=new te({props:{config:t.config,step:t.step}});return{c:function(){n.$$.fragment.c()},m:function(t,o){qt(n,t,o),e=!0},p:function(t,e){var o={};t.step&&(o.step=e.step),n.$set(o)},i:function(t){e||(Rt(n.$$.fragment,t),e=!0)},o:function(t){Vt(n.$$.fragment,t),e=!1},d:function(t){Zt(n,t)}}}function ie(t){var e,n,o=t.buttons&&ne(t);return{c:function(){e=Et("footer"),o&&o.c(),Tt(e,"class","shepherd-footer")},m:function(t,i){wt(t,e,i),o&&o.m(e,null),n=!0},p:function(t,e){e.buttons&&o.p(t,e)},i:function(t){n||(Rt(o),n=!0)},o:function(t){Vt(o),n=!1},d:function(t){t&&xt(e),o&&o.d()}}}function re(t,e,n){var o=e.step,i=o.options.buttons;return t.$set=function(t){"step"in t&&n("step",o=t.step)},{step:o,buttons:i}}var se=function(t){function e(e){var n;return Ut(a(n=t.call(this)||this),e,re,ie,bt,["step"]),n}return o(e,t),e}(Gt);function le(t){var e,n,o,i;return{c:function(){e=Et("button"),(n=Et("span")).textContent="×",Tt(n,"aria-hidden","true"),Tt(e,"aria-label",o=t.cancelIcon.label?t.cancelIcon.label:"Close Tour"),Tt(e,"class","shepherd-cancel-icon"),Tt(e,"type","button"),i=_t(e,"click",t.handleCancelClick)},m:function(t,o){wt(t,e,o),yt(e,n)},p:function(t,n){t.cancelIcon&&o!==(o=n.cancelIcon.label?n.cancelIcon.label:"Close Tour")&&Tt(e,"aria-label",o)},i:pt,o:pt,d:function(t){t&&xt(e),i()}}}function ae(t,e,n){var o=e.cancelIcon,i=e.step;return t.$set=function(t){"cancelIcon"in t&&n("cancelIcon",o=t.cancelIcon),"step"in t&&n("step",i=t.step)},{cancelIcon:o,step:i,handleCancelClick:function(t){t.preventDefault(),i.cancel()}}}var ce=function(t){function e(e){var n;return Ut(a(n=t.call(this)||this),e,ae,le,bt,["cancelIcon","step"]),n}return o(e,t),e}(Gt);function fe(t){var e;return{c:function(){Tt(e=Et("h3"),"id",t.labelId),Tt(e,"class","shepherd-title")},m:function(n,o){wt(n,e,o),t.h3_binding(e)},p:function(t,n){t.labelId&&Tt(e,"id",n.labelId)},i:pt,o:pt,d:function(n){n&&xt(e),t.h3_binding(null)}}}function he(t,e,n){var o=e.labelId,i=e.element,r=e.title;return Mt((function(){u(r)&&n("title",r=r()),n("element",i.innerHTML=r,i)})),t.$set=function(t){"labelId"in t&&n("labelId",o=t.labelId),"element"in t&&n("element",i=t.element),"title"in t&&n("title",r=t.title)},{labelId:o,element:i,title:r,h3_binding:function(t){Lt[t?"unshift":"push"]((function(){n("element",i=t)}))}}}var pe=function(t){function e(e){var n;return Ut(a(n=t.call(this)||this),e,he,fe,bt,["labelId","element","title"]),n}return o(e,t),e}(Gt);function ue(t){var e,n,o,i=t.title&&function(t){var e,n=new pe({props:{labelId:t.labelId,title:t.title}});return{c:function(){n.$$.fragment.c()},m:function(t,o){qt(n,t,o),e=!0},p:function(t,e){var o={};t.labelId&&(o.labelId=e.labelId),n.$set(o)},i:function(t){e||(Rt(n.$$.fragment,t),e=!0)},o:function(t){Vt(n.$$.fragment,t),e=!1},d:function(t){Zt(n,t)}}}(t),r=t.cancelIcon&&t.cancelIcon.enabled&&function(t){var e,n=new ce({props:{cancelIcon:t.cancelIcon,step:t.step}});return{c:function(){n.$$.fragment.c()},m:function(t,o){qt(n,t,o),e=!0},p:function(t,e){var o={};t.step&&(o.step=e.step),n.$set(o)},i:function(t){e||(Rt(n.$$.fragment,t),e=!0)},o:function(t){Vt(n.$$.fragment,t),e=!1},d:function(t){Zt(n,t)}}}(t);return{c:function(){e=Et("header"),i&&i.c(),n=$t(),r&&r.c(),Tt(e,"class","shepherd-header")},m:function(t,s){wt(t,e,s),i&&i.m(e,null),yt(e,n),r&&r.m(e,null),o=!0},p:function(t,e){e.title&&i.p(t,e),e.cancelIcon&&e.cancelIcon.enabled&&r.p(t,e)},i:function(t){o||(Rt(i),Rt(r),o=!0)},o:function(t){Vt(i),Vt(r),o=!1},d:function(t){t&&xt(e),i&&i.d(),r&&r.d()}}}function de(t,e,n){var o=e.labelId,i=e.step,r=i.options,s=r.cancelIcon,l=r.title;return t.$set=function(t){"labelId"in t&&n("labelId",o=t.labelId),"step"in t&&n("step",i=t.step)},{labelId:o,step:i,cancelIcon:s,title:l}}var ge=function(t){function e(e){var n;return Ut(a(n=t.call(this)||this),e,de,ue,bt,["labelId","step"]),n}return o(e,t),e}(Gt);function me(t){var e;return{c:function(){Tt(e=Et("div"),"class","shepherd-text"),Tt(e,"id",t.descriptionId)},m:function(n,o){wt(n,e,o),t.div_binding(e)},p:function(t,n){t.descriptionId&&Tt(e,"id",n.descriptionId)},i:pt,o:pt,d:function(n){n&&xt(e),t.div_binding(null)}}}function ve(t,e,n){var o=e.descriptionId,i=e.element,r=e.step;return Mt((function(){var t=r.options.text;u(t)&&(t=t.call(r)),p(t)?i.appendChild(t):n("element",i.innerHTML=t,i)})),t.$set=function(t){"descriptionId"in t&&n("descriptionId",o=t.descriptionId),"element"in t&&n("element",i=t.element),"step"in t&&n("step",r=t.step)},{descriptionId:o,element:i,step:r,div_binding:function(t){Lt[t?"unshift":"push"]((function(){n("element",i=t)}))}}}var be=function(t){function e(e){var n;return Ut(a(n=t.call(this)||this),e,ve,me,bt,["descriptionId","element","step"]),n}return o(e,t),e}(Gt);function ye(t){var e,n=new be({props:{descriptionId:t.descriptionId,step:t.step}});return{c:function(){n.$$.fragment.c()},m:function(t,o){qt(n,t,o),e=!0},p:function(t,e){var o={};t.descriptionId&&(o.descriptionId=e.descriptionId),t.step&&(o.step=e.step),n.$set(o)},i:function(t){e||(Rt(n.$$.fragment,t),e=!0)},o:function(t){Vt(n.$$.fragment,t),e=!1},d:function(t){Zt(n,t)}}}function we(t){var e,n=new se({props:{step:t.step}});return{c:function(){n.$$.fragment.c()},m:function(t,o){qt(n,t,o),e=!0},p:function(t,e){var o={};t.step&&(o.step=e.step),n.$set(o)},i:function(t){e||(Rt(n.$$.fragment,t),e=!0)},o:function(t){Vt(n.$$.fragment,t),e=!1},d:function(t){Zt(n,t)}}}function xe(t){var e,n,o,i,r=!g(t.step.options.text),s=Array.isArray(t.step.options.buttons)&&t.step.options.buttons.length,l=new ge({props:{labelId:t.labelId,step:t.step}}),a=r&&ye(t),c=s&&we(t);return{c:function(){e=Et("div"),l.$$.fragment.c(),n=$t(),a&&a.c(),o=$t(),c&&c.c(),Tt(e,"class","shepherd-content")},m:function(t,r){wt(t,e,r),qt(l,e,null),yt(e,n),a&&a.m(e,null),yt(e,o),c&&c.m(e,null),i=!0},p:function(t,n){var i={};t.labelId&&(i.labelId=n.labelId),t.step&&(i.step=n.step),l.$set(i),t.step&&(r=!g(n.step.options.text)),r?a?(a.p(t,n),Rt(a,1)):((a=ye(n)).c(),Rt(a,1),a.m(e,o)):a&&(zt(),Vt(a,1,1,(function(){a=null})),Nt()),t.step&&(s=Array.isArray(n.step.options.buttons)&&n.step.options.buttons.length),s?c?(c.p(t,n),Rt(c,1)):((c=we(n)).c(),Rt(c,1),c.m(e,null)):c&&(zt(),Vt(c,1,1,(function(){c=null})),Nt())},i:function(t){i||(Rt(l.$$.fragment,t),Rt(a),Rt(c),i=!0)},o:function(t){Vt(l.$$.fragment,t),Vt(a),Vt(c),i=!1},d:function(t){t&&xt(e),Zt(l),a&&a.d(),c&&c.d()}}}function Ee(t,e,n){var o=e.descriptionId,i=e.labelId,r=e.step;return t.$set=function(t){"descriptionId"in t&&n("descriptionId",o=t.descriptionId),"labelId"in t&&n("labelId",i=t.labelId),"step"in t&&n("step",r=t.step)},{descriptionId:o,labelId:i,step:r}}var Oe=function(t){function e(e){var n;return Ut(a(n=t.call(this)||this),e,Ee,xe,bt,["descriptionId","labelId","step"]),n}return o(e,t),e}(Gt);function Ie(t){var e;return{c:function(){Tt(e=Et("div"),"class","shepherd-arrow")},m:function(t,n){wt(t,e,n)},d:function(t){t&&xt(e)}}}function $e(t){for(var e,n,o,i,r=t.step.options.arrow&&t.step.options.attachTo&&t.step.options.attachTo.element&&Ie(),s=new Oe({props:{descriptionId:t.descriptionId,labelId:t.labelId,step:t.step}}),l=[{"aria-describedby":g(t.step.options.text)?null:t.descriptionId},{"aria-labelledby":t.step.options.title?t.labelId:null},{class:t.classes+" shepherd-element "+(t.hasCancelIcon?"shepherd-has-cancel-icon":"")+" "+(t.hasTitle?"shepherd-has-title":"")},t.dataStepId,{role:"dialog"},{tabindex:"0"}],a={},c=0;c<l.length;c+=1)a=ut(a,l[c]);return{c:function(){e=Et("div"),r&&r.c(),n=$t(),s.$$.fragment.c(),Ct(e,a),i=_t(e,"keydown",t.handleKeyDown)},m:function(i,l){wt(i,e,l),r&&r.m(e,null),yt(e,n),qt(s,e,null),t.div_binding(e),o=!0},p:function(t,o){o.step.options.arrow&&o.step.options.attachTo&&o.step.options.attachTo.element?r||((r=Ie()).c(),r.m(e,n)):r&&(r.d(1),r=null);var i={};t.descriptionId&&(i.descriptionId=o.descriptionId),t.labelId&&(i.labelId=o.labelId),t.step&&(i.step=o.step),s.$set(i),Ct(e,function(t,e){for(var n={},o={},i={$$scope:1},r=t.length;r--;){var s=t[r],l=e[r];if(l){for(var a in s)a in l||(o[a]=1);for(var c in l)i[c]||(n[c]=l[c],i[c]=1);t[r]=l}else for(var f in s)i[f]=1}for(var h in o)h in n||(n[h]=void 0);return n}(l,[(t.isUndefined||t.step||t.descriptionId)&&{"aria-describedby":g(o.step.options.text)?null:o.descriptionId},(t.step||t.labelId)&&{"aria-labelledby":o.step.options.title?o.labelId:null},(t.classes||t.hasCancelIcon||t.hasTitle)&&{class:o.classes+" shepherd-element "+(o.hasCancelIcon?"shepherd-has-cancel-icon":"")+" "+(o.hasTitle?"shepherd-has-title":"")},t.dataStepId&&o.dataStepId,{role:"dialog"},{tabindex:"0"}]))},i:function(t){o||(Rt(s.$$.fragment,t),o=!0)},o:function(t){Vt(s.$$.fragment,t),o=!1},d:function(n){n&&xt(e),r&&r.d(),Zt(s),t.div_binding(null),i()}}}var _e=9,Te=27,Ce=37,Pe=39;function Se(t,e,n){var o,i,r=e.classes,s=e.classPrefix,l=e.element,a=e.descriptionId,c=e.firstFocusableElement,f=e.focusableElements,h=e.labelId,p=e.lastFocusableElement,u=e.step,d=((o={})["data-"+s+"shepherd-step-id"]=u.id,o),g=u.options&&u.options.cancelIcon&&u.options.cancelIcon.enabled,m=u.options&&u.options.title;i=function(){n("focusableElements",f=l.querySelectorAll('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex="0"]')),n("firstFocusableElement",c=f[0]),n("lastFocusableElement",p=f[f.length-1])},St().$$.on_mount.push(i);return t.$set=function(t){"classes"in t&&n("classes",r=t.classes),"classPrefix"in t&&n("classPrefix",s=t.classPrefix),"element"in t&&n("element",l=t.element),"descriptionId"in t&&n("descriptionId",a=t.descriptionId),"firstFocusableElement"in t&&n("firstFocusableElement",c=t.firstFocusableElement),"focusableElements"in t&&n("focusableElements",f=t.focusableElements),"labelId"in t&&n("labelId",h=t.labelId),"lastFocusableElement"in t&&n("lastFocusableElement",p=t.lastFocusableElement),"step"in t&&n("step",u=t.step)},{classes:r,classPrefix:s,element:l,descriptionId:a,firstFocusableElement:c,focusableElements:f,labelId:h,lastFocusableElement:p,step:u,dataStepId:d,hasCancelIcon:g,hasTitle:m,getElement:function(){return l},handleKeyDown:function(t){var e=u.tour;switch(t.keyCode){case _e:if(0===f.length){t.preventDefault();break}t.shiftKey?document.activeElement===c&&(t.preventDefault(),p.focus()):document.activeElement===p&&(t.preventDefault(),c.focus());break;case Te:e.options.exitOnEsc&&u.cancel();break;case Ce:e.options.keyboardNavigation&&e.back();break;case Pe:e.options.keyboardNavigation&&e.next()}},div_binding:function(t){Lt[t?"unshift":"push"]((function(){n("element",l=t)}))}}}var Me=function(t){function n(e){var n;return Ut(a(n=t.call(this)||this),e,Se,$e,bt,["classes","classPrefix","element","descriptionId","firstFocusableElement","focusableElements","labelId","lastFocusableElement","step","getElement"]),n}return o(n,t),e(n,[{key:"getElement",get:function(){return this.$$.ctx.getElement}}]),n}(Gt);var Ae=function(t,e){return t(e={exports:{}},e.exports),e.exports}((function(t,e){t.exports={polyfill:function(){var t=window,e=document;if(!("scrollBehavior"in e.documentElement.style&&!0!==t.__forceSmoothScrollPolyfill__)){var n,o=t.HTMLElement||t.Element,i=468,r={scroll:t.scroll||t.scrollTo,scrollBy:t.scrollBy,elementScroll:o.prototype.scroll||a,scrollIntoView:o.prototype.scrollIntoView},s=t.performance&&t.performance.now?t.performance.now.bind(t.performance):Date.now,l=(n=t.navigator.userAgent,new RegExp(["MSIE ","Trident/","Edge/"].join("|")).test(n)?1:0);t.scroll=t.scrollTo=function(){void 0!==arguments[0]&&(!0!==c(arguments[0])?g.call(t,e.body,void 0!==arguments[0].left?~~arguments[0].left:t.scrollX||t.pageXOffset,void 0!==arguments[0].top?~~arguments[0].top:t.scrollY||t.pageYOffset):r.scroll.call(t,void 0!==arguments[0].left?arguments[0].left:"object"!=typeof arguments[0]?arguments[0]:t.scrollX||t.pageXOffset,void 0!==arguments[0].top?arguments[0].top:void 0!==arguments[1]?arguments[1]:t.scrollY||t.pageYOffset))},t.scrollBy=function(){void 0!==arguments[0]&&(c(arguments[0])?r.scrollBy.call(t,void 0!==arguments[0].left?arguments[0].left:"object"!=typeof arguments[0]?arguments[0]:0,void 0!==arguments[0].top?arguments[0].top:void 0!==arguments[1]?arguments[1]:0):g.call(t,e.body,~~arguments[0].left+(t.scrollX||t.pageXOffset),~~arguments[0].top+(t.scrollY||t.pageYOffset)))},o.prototype.scroll=o.prototype.scrollTo=function(){if(void 0!==arguments[0])if(!0!==c(arguments[0])){var t=arguments[0].left,e=arguments[0].top;g.call(this,this,void 0===t?this.scrollLeft:~~t,void 0===e?this.scrollTop:~~e)}else{if("number"==typeof arguments[0]&&void 0===arguments[1])throw new SyntaxError("Value could not be converted");r.elementScroll.call(this,void 0!==arguments[0].left?~~arguments[0].left:"object"!=typeof arguments[0]?~~arguments[0]:this.scrollLeft,void 0!==arguments[0].top?~~arguments[0].top:void 0!==arguments[1]?~~arguments[1]:this.scrollTop)}},o.prototype.scrollBy=function(){void 0!==arguments[0]&&(!0!==c(arguments[0])?this.scroll({left:~~arguments[0].left+this.scrollLeft,top:~~arguments[0].top+this.scrollTop,behavior:arguments[0].behavior}):r.elementScroll.call(this,void 0!==arguments[0].left?~~arguments[0].left+this.scrollLeft:~~arguments[0]+this.scrollLeft,void 0!==arguments[0].top?~~arguments[0].top+this.scrollTop:~~arguments[1]+this.scrollTop))},o.prototype.scrollIntoView=function(){if(!0!==c(arguments[0])){var n=u(this),o=n.getBoundingClientRect(),i=this.getBoundingClientRect();n!==e.body?(g.call(this,n,n.scrollLeft+i.left-o.left,n.scrollTop+i.top-o.top),"fixed"!==t.getComputedStyle(n).position&&t.scrollBy({left:o.left,top:o.top,behavior:"smooth"})):t.scrollBy({left:i.left,top:i.top,behavior:"smooth"})}else r.scrollIntoView.call(this,void 0===arguments[0]||arguments[0])}}function a(t,e){this.scrollLeft=t,this.scrollTop=e}function c(t){if(null===t||"object"!=typeof t||void 0===t.behavior||"auto"===t.behavior||"instant"===t.behavior)return!0;if("object"==typeof t&&"smooth"===t.behavior)return!1;throw new TypeError("behavior member of ScrollOptions "+t.behavior+" is not a valid value for enumeration ScrollBehavior.")}function f(t,e){return"Y"===e?t.clientHeight+l<t.scrollHeight:"X"===e?t.clientWidth+l<t.scrollWidth:void 0}function h(e,n){var o=t.getComputedStyle(e,null)["overflow"+n];return"auto"===o||"scroll"===o}function p(t){var e=f(t,"Y")&&h(t,"Y"),n=f(t,"X")&&h(t,"X");return e||n}function u(t){for(;t!==e.body&&!1===p(t);)t=t.parentNode||t.host;return t}function d(e){var n,o,r,l,a=(s()-e.startTime)/i;l=a=a>1?1:a,n=.5*(1-Math.cos(Math.PI*l)),o=e.startX+(e.x-e.startX)*n,r=e.startY+(e.y-e.startY)*n,e.method.call(e.scrollable,o,r),o===e.x&&r===e.y||t.requestAnimationFrame(d.bind(t,e))}function g(n,o,i){var l,c,f,h,p=s();n===e.body?(l=t,c=t.scrollX||t.pageXOffset,f=t.scrollY||t.pageYOffset,h=r.scroll):(l=n,c=n.scrollLeft,f=n.scrollTop,h=a),d({scrollable:l,method:h,startTime:p,startX:c,startY:f,x:o,y:i})}}}}));Ae.polyfill;Ae.polyfill();var Le=function(t){function e(e,n){var o;return void 0===n&&(n={}),(o=t.call(this,e,n)||this).tour=e,o.classPrefix=o.tour.options?at(o.tour.options.classPrefix):"",o.styles=e.styles,h(a(o)),o._setOptions(n),a(o)||a(o)}o(e,t);var n=e.prototype;return n.cancel=function(){this.tour.cancel(),this.trigger("cancel")},n.complete=function(){this.tour.complete(),this.trigger("complete")},n.destroy=function(){this.tooltip&&(this.tooltip.destroy(),this.tooltip=null),p(this.el)&&this.el.parentNode&&(this.el.parentNode.removeChild(this.el),this.el=null),this.target&&this._updateStepTargetOnHide(),this.trigger("destroy")},n.getTour=function(){return this.tour},n.hide=function(){this.tour.modal.hide(),this.trigger("before-hide"),this.el&&(this.el.hidden=!0),this.target&&this._updateStepTargetOnHide(),this.trigger("hide")},n.isOpen=function(){return Boolean(this.el&&!this.el.hidden)},n.show=function(){var t=this;if(u(this.options.beforeShowPromise)){var e=this.options.beforeShowPromise();if(!g(e))return e.then((function(){return t._show()}))}this._show()},n.updateStepOptions=function(t){Object.assign(this.options,t),this.shepherdElementComponent&&this.shepherdElementComponent.$set({step:this})},n._createTooltipContent=function(){var t=this.options.classes||"",e=this.id+"-description",n=this.id+"-label";return this.shepherdElementComponent=new Me({target:document.body,props:{classPrefix:this.classPrefix,classes:t,descriptionId:e,labelId:n,step:this,styles:this.styles}}),this.shepherdElementComponent.getElement()},n._scrollTo=function(t){var e=ct(this).element;u(this.options.scrollToHandler)?this.options.scrollToHandler(e):p(e)&&e.scrollIntoView(t)},n._getClassOptions=function(t){var e=this.tour&&this.tour.options&&this.tour.options.defaultStepOptions,n=t.classes?t.classes:"",o=e&&e.classes?e.classes:"",i=[].concat(n.split(" "),o.split(" ")),r=new Set(i);return Array.from(r).join(" ").trim()},n._setOptions=function(t){var e=this;void 0===t&&(t={});var n=this.tour&&this.tour.options&&this.tour.options.defaultStepOptions;this.options=Object.assign({arrow:!0},n,t);var o=this.options.when;this.options.classes=this._getClassOptions(t),this.destroy(),this.id=this.options.id||"step-"+ht(),o&&Object.keys(o).forEach((function(t){e.on(t,o[t],e)}))},n._setupElements=function(){g(this.el)||this.destroy(),this.el=this._createTooltipContent(),this.options.advanceOn&&m(this),ft(this)},n._show=function(){var t=this;this.trigger("before-show"),this._setupElements(),this.tour.modal.setupForStep(this),this._styleTargetElementForStep(this),this.el.hidden=!1,this.tooltip.position(),(this.target||document.body).classList.add(this.classPrefix+"shepherd-enabled",this.classPrefix+"shepherd-target"),this.options.scrollTo&&setTimeout((function(){t._scrollTo(t.options.scrollTo)})),this.trigger("show"),this.el.focus()},n._styleTargetElementForStep=function(t){var e=t.target;e&&(t.options.highlightClass&&e.classList.add(t.options.highlightClass),!1===t.options.canClickTarget&&e.classList.add("shepherd-target-click-disabled"))},n._updateStepTargetOnHide=function(){this.options.highlightClass&&this.target.classList.remove(this.options.highlightClass),this.target.classList.remove(this.classPrefix+"shepherd-enabled",this.classPrefix+"shepherd-target")},e}(f);function Fe(t){var e,n,o,i,r;return{c:function(){e=Ot("svg"),Tt(n=Ot("path"),"d",o="M "+t.openingProperties.x+" "+t.openingProperties.y+" H "+(t.openingProperties.width+t.openingProperties.x)+" V "+(t.openingProperties.height+t.openingProperties.y)+" H "+t.openingProperties.x+" L "+t.openingProperties.x+" 0 Z M 0 0 H "+t.window.innerWidth+" V "+t.window.innerHeight+" H 0 L 0 0 Z"),Tt(e,"class",i=(t.modalIsVisible?"shepherd-modal-is-visible":"")+" shepherd-modal-overlay-container"),r=_t(e,"touchmove",t._preventModalOverlayTouch)},m:function(o,i){wt(o,e,i),yt(e,n),t.svg_binding(e)},p:function(t,r){t.openingProperties&&o!==(o="M "+r.openingProperties.x+" "+r.openingProperties.y+" H "+(r.openingProperties.width+r.openingProperties.x)+" V "+(r.openingProperties.height+r.openingProperties.y)+" H "+r.openingProperties.x+" L "+r.openingProperties.x+" 0 Z M 0 0 H "+r.window.innerWidth+" V "+r.window.innerHeight+" H 0 L 0 0 Z")&&Tt(n,"d",o),t.modalIsVisible&&i!==(i=(r.modalIsVisible?"shepherd-modal-is-visible":"")+" shepherd-modal-overlay-container")&&Tt(e,"class",i)},i:pt,o:pt,d:function(n){n&&xt(e),t.svg_binding(null),r()}}}function ke(t,e,n){var o=e.element,i=e.openingProperties,r=(ht(),!1),s=void 0;l();function l(){n("openingProperties",i={height:0,x:0,y:0,width:0})}function a(){n("modalIsVisible",r=!1),p()}function c(t,e,o){if(void 0===o&&(o=0),t.getBoundingClientRect){var r=function(t,e){var n=t.getBoundingClientRect(),o=n.y||n.top,i=n.bottom||o+n.height;if(e){var r=e.getBoundingClientRect(),s=r.y||r.top,l=r.bottom||s+r.height;o=Math.max(o,s),i=Math.min(i,l)}return{y:o,height:Math.max(i-o,0)}}(t,e),s=r.y,l=r.height,a=t.getBoundingClientRect(),c=a.x,f=a.width,h=a.left;n("openingProperties",i={x:(c||h)-o,y:s-o,width:f+2*o,height:l+2*o})}}function f(){n("modalIsVisible",r=!0)}var h=function(t){t.preventDefault()};function p(){s&&(cancelAnimationFrame(s),s=void 0),window.removeEventListener("touchmove",h,{passive:!1})}return t.$set=function(t){"element"in t&&n("element",o=t.element),"openingProperties"in t&&n("openingProperties",i=t.openingProperties)},{element:o,openingProperties:i,modalIsVisible:r,getElement:function(){return o},closeModalOpening:l,hide:a,positionModalOpening:c,setupForStep:function(t){p(),t.tour.options.useModalOverlay?(!function(t){var e=t.options.modalOverlayOpeningPadding;if(t.target){var n=function t(e){if(!e)return null;var n=e instanceof HTMLElement&&window.getComputedStyle(e).overflowY;return"hidden"!==n&&"visible"!==n&&e.scrollHeight>=e.clientHeight?e:t(e.parentElement)}(t.target);!function o(){s=void 0,c(t.target,n,e),s=requestAnimationFrame(o)}(),window.addEventListener("touchmove",h,{passive:!1})}else l()}(t),f()):a()},show:f,_preventModalOverlayTouch:function(t){t.stopPropagation()},window:window,svg_binding:function(t){Lt[t?"unshift":"push"]((function(){n("element",o=t)}))}}}var He=function(t){function n(e){var n;return Ut(a(n=t.call(this)||this),e,ke,Fe,bt,["element","openingProperties","getElement","closeModalOpening","hide","positionModalOpening","setupForStep","show"]),n}return o(n,t),e(n,[{key:"getElement",get:function(){return this.$$.ctx.getElement}},{key:"closeModalOpening",get:function(){return this.$$.ctx.closeModalOpening}},{key:"hide",get:function(){return this.$$.ctx.hide}},{key:"positionModalOpening",get:function(){return this.$$.ctx.positionModalOpening}},{key:"setupForStep",get:function(){return this.$$.ctx.setupForStep}},{key:"show",get:function(){return this.$$.ctx.show}}]),n}(Gt),Be=new f,Ye=function(t){function e(e){var n;void 0===e&&(e={}),h(a(n=t.call(this,e)||this));n.options=Object.assign({},{exitOnEsc:!0,keyboardNavigation:!0},e),n.classPrefix=at(n.options.classPrefix),n.steps=[],n.addSteps(n.options.steps);return["active","cancel","complete","inactive","show","start"].map((function(t){var e;e=t,n.on(e,(function(t){(t=t||{}).tour=a(n),Be.trigger(e,t)}))})),n.modal=new He({target:e.modalContainer||document.body,props:{classPrefix:n.classPrefix,styles:n.styles}}),n._setTourID(),a(n)||a(n)}o(e,t);var n=e.prototype;return n.addStep=function(t,e){var n=t;return n instanceof Le?n.tour=this:n=new Le(this,n),g(e)?this.steps.push(n):this.steps.splice(e,0,n),n},n.addSteps=function(t){var e=this;return Array.isArray(t)&&t.forEach((function(t){e.addStep(t)})),this},n.back=function(){var t=this.steps.indexOf(this.currentStep);this.show(t-1,!1)},n.cancel=function(){if(this.options.confirmCancel){var t=this.options.confirmCancelMessage||"Are you sure you want to stop the tour?";window.confirm(t)&&this._done("cancel")}else this._done("cancel")},n.complete=function(){this._done("complete")},n.getById=function(t){return this.steps.find((function(e){return e.id===t}))},n.getCurrentStep=function(){return this.currentStep},n.hide=function(){var t=this.getCurrentStep();if(t)return t.hide()},n.isActive=function(){return Be.activeTour===this},n.next=function(){var t=this.steps.indexOf(this.currentStep);t===this.steps.length-1?this.complete():this.show(t+1,!0)},n.removeStep=function(t){var e=this,n=this.getCurrentStep();this.steps.some((function(n,o){if(n.id===t)return n.isOpen()&&n.hide(),n.destroy(),e.steps.splice(o,1),!0})),n&&n.id===t&&(this.currentStep=void 0,this.steps.length?this.show(0):this.cancel())},n.show=function(t,e){void 0===t&&(t=0),void 0===e&&(e=!0);var n=d(t)?this.getById(t):this.steps[t];n&&(this._updateStateBeforeShow(),u(n.options.showOn)&&!n.options.showOn()?this._skipStep(n,e):(this.trigger("show",{step:n,previous:this.currentStep}),this.currentStep=n,n.show()))},n.start=function(){this.trigger("start"),this.focusedElBeforeOpen=document.activeElement,this.currentStep=null,this._setupActiveTour(),this.next()},n._done=function(t){var e,n=this.steps.indexOf(this.currentStep);Array.isArray(this.steps)&&this.steps.forEach((function(t){return t.destroy()})),(e=this)&&e.steps.forEach((function(t){t.options&&!1===t.options.canClickTarget&&t.options.attachTo&&t.target instanceof HTMLElement&&t.target.classList.remove("shepherd-target-click-disabled")})),this.trigger(t,{index:n}),Be.activeTour=null,this.trigger("inactive",{tour:this}),this.modal.hide(),p(this.focusedElBeforeOpen)&&this.focusedElBeforeOpen.focus()},n._setupActiveTour=function(){this.trigger("active",{tour:this}),Be.activeTour=this},n._skipStep=function(t,e){var n=this.steps.indexOf(t),o=e?n+1:n-1;this.show(o,e)},n._updateStateBeforeShow=function(){this.currentStep&&this.currentStep.hide(),this.isActive()||this._setupActiveTour()},n._setTourID=function(){var t=this.options.tourName||"tour";this.id=t+"--"+ht()},e}(f);return Object.assign(Be,{Tour:Ye,Step:Le}),Be}));
|
4
|
+
//# sourceMappingURL=shepherd.min.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"shepherd.min.js","sources":["../../node_modules/tether/src/js/utils/type-check.js","../../node_modules/tether/src/js/evented.js","../../src/js/utils/auto-bind.js","../../src/js/utils/type-check.js","../../src/js/utils/bind.js","../../node_modules/tether/dist/js/tether.esm.js","../../src/js/utils/general.js","../../node_modules/svelte/internal/index.mjs","../../src/js/components/shepherd-button.svelte","../../src/js/components/shepherd-footer.svelte","../../src/js/components/shepherd-cancel-icon.svelte","../../src/js/components/shepherd-title.svelte","../../src/js/components/shepherd-header.svelte","../../src/js/components/shepherd-text.svelte","../../src/js/components/shepherd-content.svelte","../../src/js/components/shepherd-element.svelte","../../node_modules/smoothscroll-polyfill/dist/smoothscroll.js","../../src/js/step.js","../../src/js/components/shepherd-modal.svelte","../../src/js/tour.js","../../src/js/utils/cleanup.js","../../src/js/shepherd.js"],"sourcesContent":["/**\n * Checks if `value` is classified as a `Function` object.\n * @param {*} value The param to check if it is a function\n */\nexport function isFunction(value) {\n return typeof value === 'function';\n}\n\n/**\n * Checks if `value` is classified as a `Number` object.\n * @param {*} value The param to check if it is a number\n */\nexport function isNumber(value) {\n return typeof value === 'number';\n}\n\n/**\n * Checks if `value` is classified as an `Object`.\n * @param {*} value The param to check if it is an object\n */\nexport function isObject(value) {\n return typeof value === 'object';\n}\n\n/**\n * Checks if `value` is classified as a `String` object.\n * @param {*} value The param to check if it is a string\n */\nexport function isString(value) {\n return typeof value === 'string';\n}\n\n/**\n * Checks if `value` is undefined.\n * @param {*} value The param to check if it is undefined\n */\nexport function isUndefined(value) {\n return value === undefined;\n}\n","import { isUndefined } from './utils/type-check';\n\nexport class Evented {\n on(event, handler, ctx, once = false) {\n if (isUndefined(this.bindings)) {\n this.bindings = {};\n }\n if (isUndefined(this.bindings[event])) {\n this.bindings[event] = [];\n }\n this.bindings[event].push({ handler, ctx, once });\n\n return this;\n }\n\n once(event, handler, ctx) {\n return this.on(event, handler, ctx, true);\n }\n\n off(event, handler) {\n if (isUndefined(this.bindings) ||\n isUndefined(this.bindings[event])) {\n return this;\n }\n\n if (isUndefined(handler)) {\n delete this.bindings[event];\n } else {\n let i = 0;\n while (i < this.bindings[event].length) {\n if (this.bindings[event][i].handler === handler) {\n this.bindings[event].splice(i, 1);\n } else {\n ++i;\n }\n }\n }\n\n return this;\n }\n\n trigger(event, ...args) {\n if (!isUndefined(this.bindings) && this.bindings[event]) {\n let i = 0;\n while (i < this.bindings[event].length) {\n const { handler, ctx, once } = this.bindings[event][i];\n\n let context = ctx;\n if (isUndefined(context)) {\n context = this;\n }\n\n handler.apply(context, args);\n\n if (once) {\n this.bindings[event].splice(i, 1);\n } else {\n ++i;\n }\n }\n }\n\n return this;\n }\n}\n","/**\n * Binds all the methods on a JS Class to the `this` context of the class.\n * Adapted from https://github.com/sindresorhus/auto-bind\n * @param {object} self The `this` context of the class\n * @return {object} The `this` context of the class\n */\nexport default function autoBind(self) {\n const keys = Object.getOwnPropertyNames(self.constructor.prototype);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const val = self[key];\n if (key !== 'constructor' && typeof val === 'function') {\n self[key] = val.bind(self);\n }\n }\n\n return self;\n}\n","/**\n * Checks if `value` is classified as an `HTMLElement`.\n * @param {*} value The param to check if it is an HTMLElement\n */\nexport function isElement(value) {\n return value instanceof HTMLElement;\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n * @param {*} value The param to check if it is a function\n */\nexport function isFunction(value) {\n return typeof value === 'function';\n}\n\n/**\n * Checks if `value` is classified as a `String` object.\n * @param {*} value The param to check if it is a string\n */\nexport function isString(value) {\n return typeof value === 'string';\n}\n\n/**\n * Checks if `value` is undefined.\n * @param {*} value The param to check if it is undefined\n */\nexport function isUndefined(value) {\n return value === undefined;\n}\n","import { isUndefined } from './type-check';\n\n/**\n * Sets up the handler to determine if we should advance the tour\n * @param {string} selector\n * @param {Step} step The step instance\n * @return {Function}\n * @private\n */\nfunction _setupAdvanceOnHandler(selector, step) {\n return (event) => {\n if (step.isOpen()) {\n const targetIsEl = step.el && event.currentTarget === step.el;\n const targetIsSelector = !isUndefined(selector) && event.currentTarget.matches(selector);\n\n if (targetIsSelector || targetIsEl) {\n step.tour.next();\n }\n }\n };\n}\n\n/**\n * Bind the event handler for advanceOn\n * @param {Step} step The step instance\n */\nexport function bindAdvance(step) {\n // An empty selector matches the step element\n const { event, selector } = step.options.advanceOn || {};\n if (event) {\n const handler = _setupAdvanceOnHandler(selector, step);\n\n // TODO: this should also bind/unbind on show/hide\n let el;\n try {\n el = document.querySelector(selector);\n } catch(e) {\n // TODO\n }\n if (!isUndefined(selector) && !el) {\n return console.error(`No element was found for the selector supplied to advanceOn: ${selector}`);\n } else if (el) {\n el.addEventListener(event, handler);\n step.on('destroy', () => {\n return el.removeEventListener(event, handler);\n });\n } else {\n document.body.addEventListener(event, handler, true);\n step.on('destroy', () => {\n return document.body.removeEventListener(event, handler, true);\n });\n }\n } else {\n return console.error('advanceOn was defined, but no event name was passed.');\n }\n}\n","/*! tether 2.0.0-beta.3 */\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction addClass(el, name) {\n name.split(' ').forEach(function (cls) {\n if (cls.trim()) {\n el.classList.add(cls);\n }\n });\n}\nfunction removeClass(el, name) {\n name.split(' ').forEach(function (cls) {\n if (cls.trim()) {\n el.classList.remove(cls);\n }\n });\n}\nfunction updateClasses(el, add, all) {\n // Of the set of 'all' classes, we need the 'add' classes, and only the\n // 'add' classes to be set.\n all.forEach(function (cls) {\n if (add.indexOf(cls) === -1 && el.classList.contains(cls)) {\n removeClass(el, cls);\n }\n });\n add.forEach(function (cls) {\n if (!el.classList.contains(cls)) {\n addClass(el, cls);\n }\n });\n}\n\nvar deferred = [];\nfunction defer(fn) {\n deferred.push(fn);\n}\nfunction flush() {\n var fn; // eslint-disable-next-line\n\n while (fn = deferred.pop()) {\n fn();\n }\n}\n\nvar _scrollBarSize = null;\nfunction extend(out) {\n if (out === void 0) {\n out = {};\n }\n\n var args = [];\n Array.prototype.push.apply(args, arguments);\n args.slice(1).forEach(function (obj) {\n if (obj) {\n for (var key in obj) {\n if ({}.hasOwnProperty.call(obj, key)) {\n out[key] = obj[key];\n }\n }\n }\n });\n return out;\n}\nfunction getScrollBarSize() {\n if (_scrollBarSize) {\n return _scrollBarSize;\n }\n\n var inner = document.createElement('div');\n inner.style.width = '100%';\n inner.style.height = '200px';\n var outer = document.createElement('div');\n extend(outer.style, {\n position: 'absolute',\n top: 0,\n left: 0,\n pointerEvents: 'none',\n visibility: 'hidden',\n width: '200px',\n height: '150px',\n overflow: 'hidden'\n });\n outer.appendChild(inner);\n document.body.appendChild(outer);\n var widthContained = inner.offsetWidth;\n outer.style.overflow = 'scroll';\n var widthScroll = inner.offsetWidth;\n\n if (widthContained === widthScroll) {\n widthScroll = outer.clientWidth;\n }\n\n document.body.removeChild(outer);\n var width = widthContained - widthScroll;\n _scrollBarSize = {\n width: width,\n height: width\n };\n return _scrollBarSize;\n}\nvar uniqueId = function () {\n var id = 0;\n return function () {\n return ++id;\n };\n}();\n\n/**\n * Checks if `value` is classified as a `Function` object.\n * @param {*} value The param to check if it is a function\n */\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n/**\n * Checks if `value` is classified as a `Number` object.\n * @param {*} value The param to check if it is a number\n */\n\nfunction isNumber(value) {\n return typeof value === 'number';\n}\n/**\n * Checks if `value` is classified as an `Object`.\n * @param {*} value The param to check if it is an object\n */\n\nfunction isObject(value) {\n return typeof value === 'object';\n}\n/**\n * Checks if `value` is classified as a `String` object.\n * @param {*} value The param to check if it is a string\n */\n\nfunction isString(value) {\n return typeof value === 'string';\n}\n/**\n * Checks if `value` is undefined.\n * @param {*} value The param to check if it is undefined\n */\n\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nvar zeroPosCache = {};\nvar zeroElement = null;\nfunction getBounds(el) {\n var doc;\n\n if (el === document) {\n doc = document;\n el = document.documentElement;\n } else {\n doc = el.ownerDocument;\n }\n\n var docEl = doc.documentElement;\n\n var box = _getActualBoundingClientRect(el);\n\n var origin = _getOrigin();\n\n box.top -= origin.top;\n box.left -= origin.left;\n\n if (isUndefined(box.width)) {\n box.width = document.body.scrollWidth - box.left - box.right;\n }\n\n if (isUndefined(box.height)) {\n box.height = document.body.scrollHeight - box.top - box.bottom;\n }\n\n box.top = box.top - docEl.clientTop;\n box.left = box.left - docEl.clientLeft;\n box.right = doc.body.clientWidth - box.width - box.left;\n box.bottom = doc.body.clientHeight - box.height - box.top;\n return box;\n}\nfunction removeUtilElements() {\n if (zeroElement) {\n document.body.removeChild(zeroElement);\n }\n\n zeroElement = null;\n}\n/**\n * Same as native getBoundingClientRect, except it takes into account parent <frame> offsets\n * if the element lies within a nested document (<frame> or <iframe>-like).\n * @param node\n */\n\nfunction _getActualBoundingClientRect(node) {\n var boundingRect = node.getBoundingClientRect(); // The original object returned by getBoundingClientRect is immutable, so we clone it\n // We can't use extend because the properties are not considered part of the object by hasOwnProperty in IE9\n\n var rect = {};\n\n for (var k in boundingRect) {\n rect[k] = boundingRect[k];\n }\n\n try {\n if (node.ownerDocument !== document) {\n var frameElement = node.ownerDocument.defaultView.frameElement;\n\n if (frameElement) {\n var frameRect = _getActualBoundingClientRect(frameElement);\n\n rect.top += frameRect.top;\n rect.bottom += frameRect.top;\n rect.left += frameRect.left;\n rect.right += frameRect.left;\n }\n }\n } catch (err) {// Ignore \"Access is denied\" in IE11/Edge\n }\n\n return rect;\n}\n\nfunction _getOrigin() {\n // getBoundingClientRect is unfortunately too accurate. It introduces a pixel or two of\n // jitter as the user scrolls that messes with our ability to detect if two positions\n // are equivilant or not. We place an element at the top left of the page that will\n // get the same jitter, so we can cancel the two out.\n var node = zeroElement;\n\n if (!node || !document.body.contains(node)) {\n node = document.createElement('div');\n node.setAttribute('data-tether-id', uniqueId());\n extend(node.style, {\n top: 0,\n left: 0,\n position: 'absolute'\n });\n document.body.appendChild(node);\n zeroElement = node;\n }\n\n var id = node.getAttribute('data-tether-id');\n\n if (isUndefined(zeroPosCache[id])) {\n zeroPosCache[id] = _getActualBoundingClientRect(node); // Clear the cache when this position call is done\n\n defer(function () {\n delete zeroPosCache[id];\n });\n }\n\n return zeroPosCache[id];\n}\n\nvar Abutment = {\n position: function position(_ref) {\n var _this = this;\n\n var top = _ref.top,\n left = _ref.left;\n\n var _this$cache = this.cache('element-bounds', function () {\n return getBounds(_this.element);\n }),\n height = _this$cache.height,\n width = _this$cache.width;\n\n var targetPos = this.getTargetBounds();\n var bottom = top + height;\n var right = left + width;\n var abutted = [];\n\n if (top <= targetPos.bottom && bottom >= targetPos.top) {\n ['left', 'right'].forEach(function (side) {\n var targetPosSide = targetPos[side];\n\n if (targetPosSide === left || targetPosSide === right) {\n abutted.push(side);\n }\n });\n }\n\n if (left <= targetPos.right && right >= targetPos.left) {\n ['top', 'bottom'].forEach(function (side) {\n var targetPosSide = targetPos[side];\n\n if (targetPosSide === top || targetPosSide === bottom) {\n abutted.push(side);\n }\n });\n }\n\n var sides = ['left', 'top', 'right', 'bottom'];\n this.all.push(this.getClass('abutted'));\n sides.forEach(function (side) {\n _this.all.push(_this.getClass('abutted') + \"-\" + side);\n });\n\n if (abutted.length) {\n this.add.push(this.getClass('abutted'));\n }\n\n abutted.forEach(function (side) {\n _this.add.push(_this.getClass('abutted') + \"-\" + side);\n });\n defer(function () {\n if (!(_this.options.addTargetClasses === false)) {\n updateClasses(_this.target, _this.add, _this.all);\n }\n\n updateClasses(_this.element, _this.add, _this.all);\n });\n return true;\n }\n};\n\nvar BOUNDS_FORMAT = ['left', 'top', 'right', 'bottom'];\n\nfunction getBoundingRect(tether, to) {\n if (to === 'scrollParent') {\n to = tether.scrollParents[0];\n } else if (to === 'window') {\n to = [pageXOffset, pageYOffset, innerWidth + pageXOffset, innerHeight + pageYOffset];\n }\n\n if (to === document) {\n to = to.documentElement;\n }\n\n if (!isUndefined(to.nodeType)) {\n var node = to;\n var size = getBounds(to);\n var pos = size;\n var style = getComputedStyle(to);\n to = [pos.left, pos.top, size.width + pos.left, size.height + pos.top]; // Account any parent Frames scroll offset\n\n if (node.ownerDocument !== document) {\n var win = node.ownerDocument.defaultView;\n to[0] += win.pageXOffset;\n to[1] += win.pageYOffset;\n to[2] += win.pageXOffset;\n to[3] += win.pageYOffset;\n }\n\n BOUNDS_FORMAT.forEach(function (side, i) {\n side = side[0].toUpperCase() + side.substr(1);\n\n if (side === 'Top' || side === 'Left') {\n to[i] += parseFloat(style[\"border\" + side + \"Width\"]);\n } else {\n to[i] -= parseFloat(style[\"border\" + side + \"Width\"]);\n }\n });\n }\n\n return to;\n}\n\nvar Constraint = {\n position: function position(_ref) {\n var _this = this;\n\n var top = _ref.top,\n left = _ref.left,\n targetAttachment = _ref.targetAttachment;\n\n if (!this.options.constraints) {\n return true;\n }\n\n var _this$cache = this.cache('element-bounds', function () {\n return getBounds(_this.element);\n }),\n height = _this$cache.height,\n width = _this$cache.width;\n\n if (width === 0 && height === 0 && !isUndefined(this.lastSize)) {\n // Handle the item getting hidden as a result of our positioning without glitching\n // the classes in and out\n var _this$lastSize = this.lastSize;\n width = _this$lastSize.width;\n height = _this$lastSize.height;\n }\n\n var targetSize = this.cache('target-bounds', function () {\n return _this.getTargetBounds();\n });\n var targetHeight = targetSize.height,\n targetWidth = targetSize.width;\n var allClasses = [this.getClass('pinned'), this.getClass('out-of-bounds')];\n this.options.constraints.forEach(function (constraint) {\n var outOfBoundsClass = constraint.outOfBoundsClass,\n pinnedClass = constraint.pinnedClass;\n\n if (outOfBoundsClass) {\n allClasses.push(outOfBoundsClass);\n }\n\n if (pinnedClass) {\n allClasses.push(pinnedClass);\n }\n });\n allClasses.forEach(function (cls) {\n ['left', 'top', 'right', 'bottom'].forEach(function (side) {\n allClasses.push(cls + \"-\" + side);\n });\n });\n var addClasses = [];\n var tAttachment = extend({}, targetAttachment);\n var eAttachment = extend({}, this.attachment);\n this.options.constraints.forEach(function (constraint) {\n var to = constraint.to,\n attachment = constraint.attachment,\n pin = constraint.pin;\n\n if (isUndefined(attachment)) {\n attachment = '';\n }\n\n var changeAttachX, changeAttachY;\n\n if (attachment.indexOf(' ') >= 0) {\n var _attachment$split = attachment.split(' ');\n\n changeAttachY = _attachment$split[0];\n changeAttachX = _attachment$split[1];\n } else {\n changeAttachX = changeAttachY = attachment;\n }\n\n var bounds = getBoundingRect(_this, to);\n\n if (changeAttachY === 'target' || changeAttachY === 'both') {\n if (top < bounds[1] && tAttachment.top === 'top') {\n top += targetHeight;\n tAttachment.top = 'bottom';\n }\n\n if (top + height > bounds[3] && tAttachment.top === 'bottom') {\n top -= targetHeight;\n tAttachment.top = 'top';\n }\n }\n\n if (changeAttachY === 'together') {\n if (tAttachment.top === 'top') {\n if (eAttachment.top === 'bottom' && top < bounds[1]) {\n top += targetHeight;\n tAttachment.top = 'bottom';\n top += height;\n eAttachment.top = 'top';\n } else if (eAttachment.top === 'top' && top + height > bounds[3] && top - (height - targetHeight) >= bounds[1]) {\n top -= height - targetHeight;\n tAttachment.top = 'bottom';\n eAttachment.top = 'bottom';\n }\n }\n\n if (tAttachment.top === 'bottom') {\n if (eAttachment.top === 'top' && top + height > bounds[3]) {\n top -= targetHeight;\n tAttachment.top = 'top';\n top -= height;\n eAttachment.top = 'bottom';\n } else if (eAttachment.top === 'bottom' && top < bounds[1] && top + (height * 2 - targetHeight) <= bounds[3]) {\n top += height - targetHeight;\n tAttachment.top = 'top';\n eAttachment.top = 'top';\n }\n }\n\n if (tAttachment.top === 'middle') {\n if (top + height > bounds[3] && eAttachment.top === 'top') {\n top -= height;\n eAttachment.top = 'bottom';\n } else if (top < bounds[1] && eAttachment.top === 'bottom') {\n top += height;\n eAttachment.top = 'top';\n }\n }\n }\n\n if (changeAttachX === 'target' || changeAttachX === 'both') {\n if (left < bounds[0] && tAttachment.left === 'left') {\n left += targetWidth;\n tAttachment.left = 'right';\n }\n\n if (left + width > bounds[2] && tAttachment.left === 'right') {\n left -= targetWidth;\n tAttachment.left = 'left';\n }\n }\n\n if (changeAttachX === 'together') {\n if (left < bounds[0] && tAttachment.left === 'left') {\n if (eAttachment.left === 'right') {\n left += targetWidth;\n tAttachment.left = 'right';\n left += width;\n eAttachment.left = 'left';\n } else if (eAttachment.left === 'left') {\n left += targetWidth;\n tAttachment.left = 'right';\n left -= width;\n eAttachment.left = 'right';\n }\n } else if (left + width > bounds[2] && tAttachment.left === 'right') {\n if (eAttachment.left === 'left') {\n left -= targetWidth;\n tAttachment.left = 'left';\n left -= width;\n eAttachment.left = 'right';\n } else if (eAttachment.left === 'right') {\n left -= targetWidth;\n tAttachment.left = 'left';\n left += width;\n eAttachment.left = 'left';\n }\n } else if (tAttachment.left === 'center') {\n if (left + width > bounds[2] && eAttachment.left === 'left') {\n left -= width;\n eAttachment.left = 'right';\n } else if (left < bounds[0] && eAttachment.left === 'right') {\n left += width;\n eAttachment.left = 'left';\n }\n }\n }\n\n if (changeAttachY === 'element' || changeAttachY === 'both') {\n if (top < bounds[1] && eAttachment.top === 'bottom') {\n top += height;\n eAttachment.top = 'top';\n }\n\n if (top + height > bounds[3] && eAttachment.top === 'top') {\n top -= height;\n eAttachment.top = 'bottom';\n }\n }\n\n if (changeAttachX === 'element' || changeAttachX === 'both') {\n if (left < bounds[0]) {\n if (eAttachment.left === 'right') {\n left += width;\n eAttachment.left = 'left';\n } else if (eAttachment.left === 'center') {\n left += width / 2;\n eAttachment.left = 'left';\n }\n }\n\n if (left + width > bounds[2]) {\n if (eAttachment.left === 'left') {\n left -= width;\n eAttachment.left = 'right';\n } else if (eAttachment.left === 'center') {\n left -= width / 2;\n eAttachment.left = 'right';\n }\n }\n }\n\n if (isString(pin)) {\n pin = pin.split(',').map(function (p) {\n return p.trim();\n });\n } else if (pin === true) {\n pin = ['top', 'left', 'right', 'bottom'];\n }\n\n pin = pin || [];\n var pinned = [];\n var oob = [];\n\n if (top < bounds[1]) {\n if (pin.indexOf('top') >= 0) {\n top = bounds[1];\n pinned.push('top');\n } else {\n oob.push('top');\n }\n }\n\n if (top + height > bounds[3]) {\n if (pin.indexOf('bottom') >= 0) {\n top = bounds[3] - height;\n pinned.push('bottom');\n } else {\n oob.push('bottom');\n }\n }\n\n if (left < bounds[0]) {\n if (pin.indexOf('left') >= 0) {\n left = bounds[0];\n pinned.push('left');\n } else {\n oob.push('left');\n }\n }\n\n if (left + width > bounds[2]) {\n if (pin.indexOf('right') >= 0) {\n left = bounds[2] - width;\n pinned.push('right');\n } else {\n oob.push('right');\n }\n }\n\n if (pinned.length) {\n var pinnedClass;\n\n if (!isUndefined(_this.options.pinnedClass)) {\n pinnedClass = _this.options.pinnedClass;\n } else {\n pinnedClass = _this.getClass('pinned');\n }\n\n addClasses.push(pinnedClass);\n pinned.forEach(function (side) {\n addClasses.push(pinnedClass + \"-\" + side);\n });\n }\n\n if (oob.length) {\n var oobClass;\n\n if (!isUndefined(_this.options.outOfBoundsClass)) {\n oobClass = _this.options.outOfBoundsClass;\n } else {\n oobClass = _this.getClass('out-of-bounds');\n }\n\n addClasses.push(oobClass);\n oob.forEach(function (side) {\n addClasses.push(oobClass + \"-\" + side);\n });\n }\n\n if (pinned.indexOf('left') >= 0 || pinned.indexOf('right') >= 0) {\n eAttachment.left = tAttachment.left = false;\n }\n\n if (pinned.indexOf('top') >= 0 || pinned.indexOf('bottom') >= 0) {\n eAttachment.top = tAttachment.top = false;\n }\n\n if (tAttachment.top !== targetAttachment.top || tAttachment.left !== targetAttachment.left || eAttachment.top !== _this.attachment.top || eAttachment.left !== _this.attachment.left) {\n _this.updateAttachClasses(eAttachment, tAttachment);\n\n _this.trigger('update', {\n attachment: eAttachment,\n targetAttachment: tAttachment\n });\n }\n });\n defer(function () {\n if (!(_this.options.addTargetClasses === false)) {\n updateClasses(_this.target, addClasses, allClasses);\n }\n\n updateClasses(_this.element, addClasses, allClasses);\n });\n return {\n top: top,\n left: left\n };\n }\n};\n\nvar Shift = {\n position: function position(_ref) {\n var top = _ref.top,\n left = _ref.left;\n\n if (!this.options.shift) {\n return;\n }\n\n var shift = this.options.shift;\n\n if (isFunction(shift)) {\n shift = shift.call(this, {\n top: top,\n left: left\n });\n }\n\n var shiftTop, shiftLeft;\n\n if (isString(shift)) {\n shift = shift.split(' ');\n shift[1] = shift[1] || shift[0];\n var _shift = shift;\n shiftTop = _shift[0];\n shiftLeft = _shift[1];\n shiftTop = parseFloat(shiftTop, 10);\n shiftLeft = parseFloat(shiftLeft, 10);\n } else {\n var _ref2 = [shift.top, shift.left];\n shiftTop = _ref2[0];\n shiftLeft = _ref2[1];\n }\n\n top += shiftTop;\n left += shiftLeft;\n return {\n top: top,\n left: left\n };\n }\n};\n\nvar Evented =\n/*#__PURE__*/\nfunction () {\n function Evented() {}\n\n var _proto = Evented.prototype;\n\n _proto.on = function on(event, handler, ctx, once) {\n if (once === void 0) {\n once = false;\n }\n\n if (isUndefined(this.bindings)) {\n this.bindings = {};\n }\n\n if (isUndefined(this.bindings[event])) {\n this.bindings[event] = [];\n }\n\n this.bindings[event].push({\n handler: handler,\n ctx: ctx,\n once: once\n });\n return this;\n };\n\n _proto.once = function once(event, handler, ctx) {\n return this.on(event, handler, ctx, true);\n };\n\n _proto.off = function off(event, handler) {\n if (isUndefined(this.bindings) || isUndefined(this.bindings[event])) {\n return this;\n }\n\n if (isUndefined(handler)) {\n delete this.bindings[event];\n } else {\n var i = 0;\n\n while (i < this.bindings[event].length) {\n if (this.bindings[event][i].handler === handler) {\n this.bindings[event].splice(i, 1);\n } else {\n ++i;\n }\n }\n }\n\n return this;\n };\n\n _proto.trigger = function trigger(event) {\n if (!isUndefined(this.bindings) && this.bindings[event]) {\n var i = 0;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n while (i < this.bindings[event].length) {\n var _this$bindings$event$ = this.bindings[event][i],\n handler = _this$bindings$event$.handler,\n ctx = _this$bindings$event$.ctx,\n once = _this$bindings$event$.once;\n var context = ctx;\n\n if (isUndefined(context)) {\n context = this;\n }\n\n handler.apply(context, args);\n\n if (once) {\n this.bindings[event].splice(i, 1);\n } else {\n ++i;\n }\n }\n }\n\n return this;\n };\n\n return Evented;\n}();\n\nvar MIRROR_LR = {\n center: 'center',\n left: 'right',\n right: 'left'\n};\nvar MIRROR_TB = {\n middle: 'middle',\n top: 'bottom',\n bottom: 'top'\n};\nvar OFFSET_MAP = {\n top: 0,\n left: 0,\n middle: '50%',\n center: '50%',\n bottom: '100%',\n right: '100%'\n};\nfunction addOffset() {\n var out = {\n top: 0,\n left: 0\n };\n\n for (var _len = arguments.length, offsets = new Array(_len), _key = 0; _key < _len; _key++) {\n offsets[_key] = arguments[_key];\n }\n\n offsets.forEach(function (_ref) {\n var top = _ref.top,\n left = _ref.left;\n\n if (isString(top)) {\n top = parseFloat(top);\n }\n\n if (isString(left)) {\n left = parseFloat(left);\n }\n\n out.top += top;\n out.left += left;\n });\n return out;\n}\nfunction attachmentToOffset(attachment) {\n var left = attachment.left,\n top = attachment.top;\n\n if (!isUndefined(OFFSET_MAP[attachment.left])) {\n left = OFFSET_MAP[attachment.left];\n }\n\n if (!isUndefined(OFFSET_MAP[attachment.top])) {\n top = OFFSET_MAP[attachment.top];\n }\n\n return {\n left: left,\n top: top\n };\n}\nfunction autoToFixedAttachment(attachment, relativeToAttachment) {\n var left = attachment.left,\n top = attachment.top;\n\n if (left === 'auto') {\n left = MIRROR_LR[relativeToAttachment.left];\n }\n\n if (top === 'auto') {\n top = MIRROR_TB[relativeToAttachment.top];\n }\n\n return {\n left: left,\n top: top\n };\n}\nfunction offsetToPx(offset, size) {\n if (isString(offset.left) && offset.left.indexOf('%') !== -1) {\n offset.left = parseFloat(offset.left) / 100 * size.width;\n }\n\n if (isString(offset.top) && offset.top.indexOf('%') !== -1) {\n offset.top = parseFloat(offset.top) / 100 * size.height;\n }\n\n return offset;\n}\nfunction parseTopLeft(value) {\n var _value$split = value.split(' '),\n top = _value$split[0],\n left = _value$split[1];\n\n return {\n top: top,\n left: left\n };\n}\n\nfunction getScrollParents(el) {\n // In firefox if the el is inside an iframe with display: none; window.getComputedStyle() will return null;\n // https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n var computedStyle = getComputedStyle(el) || {};\n var position = computedStyle.position;\n var parents = [];\n\n if (position === 'fixed') {\n return [el];\n }\n\n var parent = el;\n\n while ((parent = parent.parentNode) && parent && parent.nodeType === 1) {\n var style = void 0;\n\n try {\n style = getComputedStyle(parent);\n } catch (err) {// Intentionally blank\n }\n\n if (isUndefined(style) || style === null) {\n parents.push(parent);\n return parents;\n }\n\n var _style = style,\n overflow = _style.overflow,\n overflowX = _style.overflowX,\n overflowY = _style.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n if (position !== 'absolute' || ['relative', 'absolute', 'fixed'].indexOf(style.position) >= 0) {\n parents.push(parent);\n }\n }\n }\n\n parents.push(el.ownerDocument.body); // If the node is within a frame, account for the parent window scroll\n\n if (el.ownerDocument !== document) {\n parents.push(el.ownerDocument.defaultView);\n }\n\n return parents;\n}\nfunction getOffsetParent(el) {\n return el.offsetParent || document.documentElement;\n}\n\nvar TetherBase = {\n modules: [Constraint, Abutment, Shift]\n};\n\nfunction isFullscreenElement(e) {\n var d = e.ownerDocument;\n var fe = d.fullscreenElement || d.webkitFullscreenElement || d.mozFullScreenElement || d.msFullscreenElement;\n return fe === e;\n}\n\nfunction within(a, b, diff) {\n if (diff === void 0) {\n diff = 1;\n }\n\n return a + diff >= b && b >= a - diff;\n}\n\nvar transformKey = function () {\n if (isUndefined(document)) {\n return '';\n }\n\n var el = document.createElement('div');\n var transforms = ['transform', 'WebkitTransform', 'OTransform', 'MozTransform', 'msTransform'];\n\n for (var i = 0; i < transforms.length; ++i) {\n var key = transforms[i];\n\n if (el.style[key] !== undefined) {\n return key;\n }\n }\n}();\n\nvar tethers = [];\n\nvar position = function position() {\n tethers.forEach(function (tether) {\n tether.position(false);\n });\n flush();\n};\n\nfunction now() {\n return performance.now();\n}\n\n(function () {\n var lastCall = null;\n var lastDuration = null;\n var pendingTimeout = null;\n\n var tick = function tick() {\n if (!isUndefined(lastDuration) && lastDuration > 16) {\n // We voluntarily throttle ourselves if we can't manage 60fps\n lastDuration = Math.min(lastDuration - 16, 250); // Just in case this is the last event, remember to position just once more\n\n pendingTimeout = setTimeout(tick, 250);\n return;\n }\n\n if (!isUndefined(lastCall) && now() - lastCall < 10) {\n // Some browsers call events a little too frequently, refuse to run more than is reasonable\n return;\n }\n\n if (pendingTimeout != null) {\n clearTimeout(pendingTimeout);\n pendingTimeout = null;\n }\n\n lastCall = now();\n position();\n lastDuration = now() - lastCall;\n };\n\n if (!isUndefined(window) && !isUndefined(window.addEventListener)) {\n ['resize', 'scroll', 'touchmove'].forEach(function (event) {\n window.addEventListener(event, tick);\n });\n }\n})();\n\nvar TetherClass =\n/*#__PURE__*/\nfunction (_Evented) {\n _inheritsLoose(TetherClass, _Evented);\n\n function TetherClass(options) {\n var _this;\n\n _this = _Evented.call(this) || this;\n _this.position = _this.position.bind(_assertThisInitialized(_this));\n tethers.push(_assertThisInitialized(_this));\n _this.history = [];\n\n _this.setOptions(options, false);\n\n TetherBase.modules.forEach(function (module) {\n if (!isUndefined(module.initialize)) {\n module.initialize.call(_assertThisInitialized(_this));\n }\n });\n\n _this.position();\n\n return _this;\n }\n\n var _proto = TetherClass.prototype;\n\n _proto.getClass = function getClass(key) {\n if (key === void 0) {\n key = '';\n }\n\n var classes = this.options.classes;\n\n if (!isUndefined(classes) && !isUndefined(classes[key])) {\n if (classes[key] === false) {\n return '';\n }\n\n return this.options.classes[key];\n } else if (this.options.classPrefix) {\n return this.options.classPrefix + \"-\" + key;\n } else {\n return key;\n }\n };\n\n _proto.setOptions = function setOptions(options, pos) {\n var _this2 = this;\n\n if (pos === void 0) {\n pos = true;\n }\n\n var defaults = {\n offset: '0 0',\n targetOffset: '0 0',\n targetAttachment: 'auto auto',\n classPrefix: 'tether'\n };\n this.options = extend(defaults, options);\n var _this$options = this.options,\n element = _this$options.element,\n target = _this$options.target,\n targetModifier = _this$options.targetModifier;\n this.element = element;\n this.target = target;\n this.targetModifier = targetModifier;\n\n if (this.target === 'viewport') {\n this.target = document.body;\n this.targetModifier = 'visible';\n } else if (this.target === 'scroll-handle') {\n this.target = document.body;\n this.targetModifier = 'scroll-handle';\n }\n\n ['element', 'target'].forEach(function (key) {\n if (isUndefined(_this2[key])) {\n throw new Error('Tether Error: Both element and target must be defined');\n }\n\n if (!isUndefined(_this2[key].jquery)) {\n _this2[key] = _this2[key][0];\n } else if (isString(_this2[key])) {\n _this2[key] = document.querySelector(_this2[key]);\n }\n });\n\n this._addClasses();\n\n if (!this.options.attachment) {\n throw new Error('Tether Error: You must provide an attachment');\n }\n\n this.targetAttachment = parseTopLeft(this.options.targetAttachment);\n this.attachment = parseTopLeft(this.options.attachment);\n this.offset = parseTopLeft(this.options.offset);\n this.targetOffset = parseTopLeft(this.options.targetOffset);\n\n if (!isUndefined(this.scrollParents)) {\n this.disable();\n }\n\n if (this.targetModifier === 'scroll-handle') {\n this.scrollParents = [this.target];\n } else {\n this.scrollParents = getScrollParents(this.target);\n }\n\n if (!(this.options.enabled === false)) {\n this.enable(pos);\n }\n };\n\n _proto.getTargetBounds = function getTargetBounds() {\n if (!isUndefined(this.targetModifier)) {\n if (this.targetModifier === 'visible') {\n if (this.target === document.body) {\n return {\n top: pageYOffset,\n left: pageXOffset,\n height: innerHeight,\n width: innerWidth\n };\n } else {\n var bounds = getBounds(this.target);\n var out = {\n height: bounds.height,\n width: bounds.width,\n top: bounds.top,\n left: bounds.left\n };\n out.height = Math.min(out.height, bounds.height - (pageYOffset - bounds.top));\n out.height = Math.min(out.height, bounds.height - (bounds.top + bounds.height - (pageYOffset + innerHeight)));\n out.height = Math.min(innerHeight, out.height);\n out.height -= 2;\n out.width = Math.min(out.width, bounds.width - (pageXOffset - bounds.left));\n out.width = Math.min(out.width, bounds.width - (bounds.left + bounds.width - (pageXOffset + innerWidth)));\n out.width = Math.min(innerWidth, out.width);\n out.width -= 2;\n\n if (out.top < pageYOffset) {\n out.top = pageYOffset;\n }\n\n if (out.left < pageXOffset) {\n out.left = pageXOffset;\n }\n\n return out;\n }\n } else if (this.targetModifier === 'scroll-handle') {\n var _bounds;\n\n var target = this.target;\n\n if (target === document.body) {\n target = document.documentElement;\n _bounds = {\n left: pageXOffset,\n top: pageYOffset,\n height: innerHeight,\n width: innerWidth\n };\n } else {\n _bounds = getBounds(target);\n }\n\n var style = getComputedStyle(target);\n var hasBottomScroll = target.scrollWidth > target.clientWidth || [style.overflow, style.overflowX].indexOf('scroll') >= 0 || this.target !== document.body;\n var scrollBottom = 0;\n\n if (hasBottomScroll) {\n scrollBottom = 15;\n }\n\n var height = _bounds.height - parseFloat(style.borderTopWidth) - parseFloat(style.borderBottomWidth) - scrollBottom;\n var _out = {\n width: 15,\n height: height * 0.975 * (height / target.scrollHeight),\n left: _bounds.left + _bounds.width - parseFloat(style.borderLeftWidth) - 15\n };\n var fitAdj = 0;\n\n if (height < 408 && this.target === document.body) {\n fitAdj = -0.00011 * Math.pow(height, 2) - 0.00727 * height + 22.58;\n }\n\n if (this.target !== document.body) {\n _out.height = Math.max(_out.height, 24);\n }\n\n var scrollPercentage = this.target.scrollTop / (target.scrollHeight - height);\n _out.top = scrollPercentage * (height - _out.height - fitAdj) + _bounds.top + parseFloat(style.borderTopWidth);\n\n if (this.target === document.body) {\n _out.height = Math.max(_out.height, 24);\n }\n\n return _out;\n }\n } else {\n return getBounds(this.target);\n }\n };\n\n _proto.clearCache = function clearCache() {\n this._cache = {};\n };\n\n _proto.cache = function cache(k, getter) {\n // More than one module will often need the same DOM info, so\n // we keep a cache which is cleared on each position call\n if (isUndefined(this._cache)) {\n this._cache = {};\n }\n\n if (isUndefined(this._cache[k])) {\n this._cache[k] = getter.call(this);\n }\n\n return this._cache[k];\n };\n\n _proto.enable = function enable(pos) {\n var _this3 = this;\n\n if (pos === void 0) {\n pos = true;\n }\n\n if (!(this.options.addTargetClasses === false)) {\n addClass(this.target, this.getClass('enabled'));\n }\n\n addClass(this.element, this.getClass('enabled'));\n this.enabled = true;\n this.scrollParents.forEach(function (parent) {\n if (parent !== _this3.target.ownerDocument) {\n parent.addEventListener('scroll', _this3.position);\n }\n });\n\n if (pos) {\n this.position();\n }\n };\n\n _proto.disable = function disable() {\n var _this4 = this;\n\n removeClass(this.target, this.getClass('enabled'));\n removeClass(this.element, this.getClass('enabled'));\n this.enabled = false;\n\n if (!isUndefined(this.scrollParents)) {\n this.scrollParents.forEach(function (parent) {\n parent.removeEventListener('scroll', _this4.position);\n });\n }\n };\n\n _proto.destroy = function destroy() {\n var _this5 = this;\n\n this.disable();\n\n this._removeClasses();\n\n tethers.forEach(function (tether, i) {\n if (tether === _this5) {\n tethers.splice(i, 1);\n }\n }); // Remove any elements we were using for convenience from the DOM\n\n if (tethers.length === 0) {\n removeUtilElements();\n }\n };\n\n _proto.updateAttachClasses = function updateAttachClasses(elementAttach, targetAttach) {\n var _this6 = this;\n\n elementAttach = elementAttach || this.attachment;\n targetAttach = targetAttach || this.targetAttachment;\n var sides = ['left', 'top', 'bottom', 'right', 'middle', 'center'];\n\n if (!isUndefined(this._addAttachClasses) && this._addAttachClasses.length) {\n // updateAttachClasses can be called more than once in a position call, so\n // we need to clean up after ourselves such that when the last defer gets\n // ran it doesn't add any extra classes from previous calls.\n this._addAttachClasses.splice(0, this._addAttachClasses.length);\n }\n\n if (isUndefined(this._addAttachClasses)) {\n this._addAttachClasses = [];\n }\n\n this.add = this._addAttachClasses;\n\n if (elementAttach.top) {\n this.add.push(this.getClass('element-attached') + \"-\" + elementAttach.top);\n }\n\n if (elementAttach.left) {\n this.add.push(this.getClass('element-attached') + \"-\" + elementAttach.left);\n }\n\n if (targetAttach.top) {\n this.add.push(this.getClass('target-attached') + \"-\" + targetAttach.top);\n }\n\n if (targetAttach.left) {\n this.add.push(this.getClass('target-attached') + \"-\" + targetAttach.left);\n }\n\n this.all = [];\n sides.forEach(function (side) {\n _this6.all.push(_this6.getClass('element-attached') + \"-\" + side);\n\n _this6.all.push(_this6.getClass('target-attached') + \"-\" + side);\n });\n defer(function () {\n if (isUndefined(_this6._addAttachClasses)) {\n return;\n }\n\n updateClasses(_this6.element, _this6._addAttachClasses, _this6.all);\n\n if (!(_this6.options.addTargetClasses === false)) {\n updateClasses(_this6.target, _this6._addAttachClasses, _this6.all);\n }\n\n delete _this6._addAttachClasses;\n });\n };\n\n _proto.position = function position(flushChanges) {\n var _this7 = this;\n\n if (flushChanges === void 0) {\n flushChanges = true;\n }\n\n // flushChanges commits the changes immediately, leave true unless you are positioning multiple\n // tethers (in which case call Tether.Utils.flush yourself when you're done)\n if (!this.enabled) {\n return;\n }\n\n this.clearCache(); // Turn 'auto' attachments into the appropriate corner or edge\n\n var targetAttachment = autoToFixedAttachment(this.targetAttachment, this.attachment);\n this.updateAttachClasses(this.attachment, targetAttachment);\n var elementPos = this.cache('element-bounds', function () {\n return getBounds(_this7.element);\n });\n var width = elementPos.width,\n height = elementPos.height;\n\n if (width === 0 && height === 0 && !isUndefined(this.lastSize)) {\n // We cache the height and width to make it possible to position elements that are\n // getting hidden.\n var _this$lastSize = this.lastSize;\n width = _this$lastSize.width;\n height = _this$lastSize.height;\n } else {\n this.lastSize = {\n width: width,\n height: height\n };\n }\n\n var targetPos = this.cache('target-bounds', function () {\n return _this7.getTargetBounds();\n });\n var targetSize = targetPos; // Get an actual px offset from the attachment\n\n var offset = offsetToPx(attachmentToOffset(this.attachment), {\n width: width,\n height: height\n });\n var targetOffset = offsetToPx(attachmentToOffset(targetAttachment), targetSize);\n var manualOffset = offsetToPx(this.offset, {\n width: width,\n height: height\n });\n var manualTargetOffset = offsetToPx(this.targetOffset, targetSize); // Add the manually provided offset\n\n offset = addOffset(offset, manualOffset);\n targetOffset = addOffset(targetOffset, manualTargetOffset); // It's now our goal to make (element position + offset) == (target position + target offset)\n\n var left = targetPos.left + targetOffset.left - offset.left;\n var top = targetPos.top + targetOffset.top - offset.top;\n\n for (var i = 0; i < TetherBase.modules.length; ++i) {\n var module = TetherBase.modules[i];\n var ret = module.position.call(this, {\n left: left,\n top: top,\n targetAttachment: targetAttachment,\n targetPos: targetPos,\n elementPos: elementPos,\n offset: offset,\n targetOffset: targetOffset,\n manualOffset: manualOffset,\n manualTargetOffset: manualTargetOffset,\n scrollbarSize: scrollbarSize,\n attachment: this.attachment\n });\n\n if (ret === false) {\n return false;\n } else if (isUndefined(ret) || !isObject(ret)) {\n continue;\n } else {\n top = ret.top;\n left = ret.left;\n }\n } // We describe the position three different ways to give the optimizer\n // a chance to decide the best possible way to position the element\n // with the fewest repaints.\n\n\n var next = {\n // It's position relative to the page (absolute positioning when\n // the element is a child of the body)\n page: {\n top: top,\n left: left\n },\n // It's position relative to the viewport (fixed positioning)\n viewport: {\n top: top - pageYOffset,\n bottom: pageYOffset - top - height + innerHeight,\n left: left - pageXOffset,\n right: pageXOffset - left - width + innerWidth\n }\n };\n var doc = this.target.ownerDocument;\n var win = doc.defaultView;\n var scrollbarSize;\n\n if (win.innerHeight > doc.documentElement.clientHeight) {\n scrollbarSize = this.cache('scrollbar-size', getScrollBarSize);\n next.viewport.bottom -= scrollbarSize.height;\n }\n\n if (win.innerWidth > doc.documentElement.clientWidth) {\n scrollbarSize = this.cache('scrollbar-size', getScrollBarSize);\n next.viewport.right -= scrollbarSize.width;\n }\n\n if (['', 'static'].indexOf(doc.body.style.position) === -1 || ['', 'static'].indexOf(doc.body.parentElement.style.position) === -1) {\n // Absolute positioning in the body will be relative to the page, not the 'initial containing block'\n next.page.bottom = doc.body.scrollHeight - top - height;\n next.page.right = doc.body.scrollWidth - left - width;\n }\n\n if (!isUndefined(this.options.optimizations) && this.options.optimizations.moveElement !== false && isUndefined(this.targetModifier)) {\n var offsetParent = this.cache('target-offsetparent', function () {\n return getOffsetParent(_this7.target);\n });\n var offsetPosition = this.cache('target-offsetparent-bounds', function () {\n return getBounds(offsetParent);\n });\n var offsetParentStyle = getComputedStyle(offsetParent);\n var offsetParentSize = offsetPosition;\n var offsetBorder = {};\n ['Top', 'Left', 'Bottom', 'Right'].forEach(function (side) {\n offsetBorder[side.toLowerCase()] = parseFloat(offsetParentStyle[\"border\" + side + \"Width\"]);\n });\n offsetPosition.right = doc.body.scrollWidth - offsetPosition.left - offsetParentSize.width + offsetBorder.right;\n offsetPosition.bottom = doc.body.scrollHeight - offsetPosition.top - offsetParentSize.height + offsetBorder.bottom;\n\n if (next.page.top >= offsetPosition.top + offsetBorder.top && next.page.bottom >= offsetPosition.bottom) {\n if (next.page.left >= offsetPosition.left + offsetBorder.left && next.page.right >= offsetPosition.right) {\n // We're within the visible part of the target's scroll parent\n var scrollLeft = offsetParent.scrollLeft,\n scrollTop = offsetParent.scrollTop; // It's position relative to the target's offset parent (absolute positioning when\n // the element is moved to be a child of the target's offset parent).\n\n next.offset = {\n top: next.page.top - offsetPosition.top + scrollTop - offsetBorder.top,\n left: next.page.left - offsetPosition.left + scrollLeft - offsetBorder.left\n };\n }\n }\n } // We could also travel up the DOM and try each containing context, rather than only\n // looking at the body, but we're gonna get diminishing returns.\n\n\n this.move(next);\n this.history.unshift(next);\n\n if (this.history.length > 3) {\n this.history.pop();\n }\n\n if (flushChanges) {\n flush();\n }\n\n return true;\n } // THE ISSUE\n ;\n\n _proto.move = function move(pos) {\n var _this8 = this;\n\n if (isUndefined(this.element.parentNode)) {\n return;\n }\n\n var same = {};\n\n for (var type in pos) {\n same[type] = {};\n\n for (var key in pos[type]) {\n var found = false;\n\n for (var i = 0; i < this.history.length; ++i) {\n var point = this.history[i];\n\n if (!isUndefined(point[type]) && !within(point[type][key], pos[type][key])) {\n found = true;\n break;\n }\n }\n\n if (!found) {\n same[type][key] = true;\n }\n }\n }\n\n var css = {\n top: '',\n left: '',\n right: '',\n bottom: ''\n };\n\n var transcribe = function transcribe(_same, _pos) {\n var hasOptimizations = !isUndefined(_this8.options.optimizations);\n var gpu = hasOptimizations ? _this8.options.optimizations.gpu : null;\n\n if (gpu !== false) {\n var yPos, xPos;\n\n if (_same.top) {\n css.top = 0;\n yPos = _pos.top;\n } else {\n css.bottom = 0;\n yPos = -_pos.bottom;\n }\n\n if (_same.left) {\n css.left = 0;\n xPos = _pos.left;\n } else {\n css.right = 0;\n xPos = -_pos.right;\n }\n\n if (isNumber(window.devicePixelRatio) && devicePixelRatio % 1 === 0) {\n xPos = Math.round(xPos * devicePixelRatio) / devicePixelRatio;\n yPos = Math.round(yPos * devicePixelRatio) / devicePixelRatio;\n }\n\n css[transformKey] = \"translateX(\" + xPos + \"px) translateY(\" + yPos + \"px)\";\n\n if (transformKey !== 'msTransform') {\n // The Z transform will keep this in the GPU (faster, and prevents artifacts),\n // but IE9 doesn't support 3d transforms and will choke.\n css[transformKey] += ' translateZ(0)';\n }\n } else {\n if (_same.top) {\n css.top = _pos.top + \"px\";\n } else {\n css.bottom = _pos.bottom + \"px\";\n }\n\n if (_same.left) {\n css.left = _pos.left + \"px\";\n } else {\n css.right = _pos.right + \"px\";\n }\n }\n };\n\n var hasOptimizations = !isUndefined(this.options.optimizations);\n var allowPositionFixed = true;\n\n if (hasOptimizations && this.options.optimizations.allowPositionFixed === false) {\n allowPositionFixed = false;\n }\n\n var moved = false;\n\n if ((same.page.top || same.page.bottom) && (same.page.left || same.page.right)) {\n css.position = 'absolute';\n transcribe(same.page, pos.page);\n } else if (allowPositionFixed && (same.viewport.top || same.viewport.bottom) && (same.viewport.left || same.viewport.right)) {\n css.position = 'fixed';\n transcribe(same.viewport, pos.viewport);\n } else if (!isUndefined(same.offset) && same.offset.top && same.offset.left) {\n css.position = 'absolute';\n var offsetParent = this.cache('target-offsetparent', function () {\n return getOffsetParent(_this8.target);\n });\n\n if (getOffsetParent(this.element) !== offsetParent) {\n defer(function () {\n _this8.element.parentNode.removeChild(_this8.element);\n\n offsetParent.appendChild(_this8.element);\n });\n }\n\n transcribe(same.offset, pos.offset);\n moved = true;\n } else {\n css.position = 'absolute';\n transcribe({\n top: true,\n left: true\n }, pos.page);\n }\n\n if (!moved) {\n if (this.options.bodyElement) {\n if (this.element.parentNode !== this.options.bodyElement) {\n this.options.bodyElement.appendChild(this.element);\n }\n } else {\n var offsetParentIsBody = true;\n var currentNode = this.element.parentNode;\n\n while (currentNode && currentNode.nodeType === 1 && currentNode.tagName !== 'BODY' && !isFullscreenElement(currentNode)) {\n if (getComputedStyle(currentNode).position !== 'static') {\n offsetParentIsBody = false;\n break;\n }\n\n currentNode = currentNode.parentNode;\n }\n\n if (!offsetParentIsBody) {\n this.element.parentNode.removeChild(this.element);\n this.element.ownerDocument.body.appendChild(this.element);\n }\n }\n } // Any css change will trigger a repaint, so let's avoid one if nothing changed\n\n\n var writeCSS = {};\n var write = false;\n\n for (var _key in css) {\n var val = css[_key];\n var elVal = this.element.style[_key];\n\n if (elVal !== val) {\n write = true;\n writeCSS[_key] = val;\n }\n }\n\n if (write) {\n defer(function () {\n extend(_this8.element.style, writeCSS);\n\n _this8.trigger('repositioned');\n });\n }\n };\n\n _proto._addClasses = function _addClasses() {\n addClass(this.element, this.getClass('element'));\n\n if (!(this.options.addTargetClasses === false)) {\n addClass(this.target, this.getClass('target'));\n }\n };\n\n _proto._removeClasses = function _removeClasses() {\n var _this9 = this;\n\n removeClass(this.element, this.getClass('element'));\n\n if (!(this.options.addTargetClasses === false)) {\n removeClass(this.target, this.getClass('target'));\n }\n\n this.all.forEach(function (className) {\n _this9.element.classList.remove(className);\n\n _this9.target.classList.remove(className);\n });\n };\n\n return TetherClass;\n}(Evented);\n\nTetherClass.modules = [];\nTetherBase.position = position;\nvar Tether = extend(TetherClass, TetherBase);\nTether.modules.push({\n initialize: function initialize() {\n var _this10 = this;\n\n this.markers = {};\n ['target', 'element'].forEach(function (type) {\n var el = document.createElement('div');\n el.className = _this10.getClass(type + \"-marker\");\n var dot = document.createElement('div');\n dot.className = _this10.getClass('marker-dot');\n el.appendChild(dot);\n\n _this10[type].appendChild(el);\n\n _this10.markers[type] = {\n dot: dot,\n el: el\n };\n });\n },\n position: function position(_ref) {\n var manualOffset = _ref.manualOffset,\n manualTargetOffset = _ref.manualTargetOffset;\n var offsets = {\n element: manualOffset,\n target: manualTargetOffset\n };\n\n for (var type in offsets) {\n var offset = offsets[type];\n\n for (var side in offset) {\n var val = offset[side];\n\n if (!isString(val) || val.indexOf('%') === -1 && val.indexOf('px') === -1) {\n val += 'px';\n }\n\n if (this.markers[type].dot.style[side] !== val) {\n this.markers[type].dot.style[side] = val;\n }\n }\n }\n\n return true;\n }\n});\n\nexport default Tether;\n//# sourceMappingURL=tether.esm.js.map\n","import { isString } from './type-check';\nimport Tether from 'tether';\n\nconst ATTACHMENT = {\n 'bottom': 'top center',\n 'bottom center': 'top center',\n 'bottom left': 'top right',\n 'bottom right': 'top left',\n 'center': 'middle center',\n 'left': 'middle right',\n 'middle': 'middle center',\n 'middle center': 'middle center',\n 'middle left': 'middle right',\n 'middle right': 'middle left',\n 'right': 'middle left',\n 'top': 'bottom center',\n 'top center': 'bottom center',\n 'top left': 'bottom right',\n 'top right': 'bottom left'\n};\n\n/**\n * Ensure class prefix ends in `-`\n * @param {string} prefix The prefix to prepend to the class names generated by nano-css\n * @return {string} The prefix ending in `-`\n */\nexport function normalizePrefix(prefix) {\n if (!isString(prefix) || prefix === '') {\n return '';\n }\n\n return prefix.charAt(prefix.length - 1) !== '-' ? `${prefix}-` : prefix;\n}\n\n/**\n * Checks if options.attachTo.element is a string, and if so, tries to find the element\n * @param {Step} step The step instance\n * @returns {{element, on}}\n * `element` is a qualified HTML Element\n * `on` is a string position value\n */\nexport function parseAttachTo(step) {\n const options = step.options.attachTo || {};\n const returnOpts = Object.assign({}, options);\n\n if (isString(options.element)) {\n // Can't override the element in user opts reference because we can't\n // guarantee that the element will exist in the future.\n try {\n returnOpts.element = document.querySelector(options.element);\n } catch(e) {\n // TODO\n }\n if (!returnOpts.element) {\n console.error(`The element for this Shepherd step was not found ${options.element}`);\n }\n }\n\n return returnOpts;\n}\n\n/**\n * Determines options for the tooltip and initializes\n * `step.tooltip` as a Tether instance.\n * @param {Step} step The step instance\n */\nexport function setupTooltip(step) {\n if (step.tooltip) {\n step.tooltip.destroy();\n }\n\n const attachToOpts = parseAttachTo(step);\n\n step.tooltip = _makeTooltipInstance(attachToOpts, step);\n\n step.target = attachToOpts.element;\n}\n\n/**\n * Create a unique id for steps, tours, modals, etc\n * @return {string}\n */\nexport function uuid() {\n let d = Date.now();\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (d + Math.random() * 16) % 16 | 0;\n d = Math.floor(d / 16);\n return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);\n });\n}\n\n/**\n * Generates a `Tether` instance from a set of base `attachTo` options\n * @param attachToOptions\n * @param {Step} step The step instance\n * @return {Tether}\n * @private\n */\nfunction _makeTooltipInstance(attachToOptions, step) {\n let tetherOptions = {\n classPrefix: 'shepherd',\n constraints: [\n {\n to: 'scrollParent',\n attachment: 'together',\n pin: ['left', 'right', 'top']\n },\n {\n to: 'window',\n attachment: 'together'\n }\n ]\n };\n let target = document.body;\n\n if (!attachToOptions.element || !attachToOptions.on) {\n tetherOptions.attachment = 'middle center';\n tetherOptions.targetModifier = 'visible';\n } else {\n tetherOptions.attachment = ATTACHMENT[attachToOptions.on] || ATTACHMENT.right;\n target = attachToOptions.element;\n }\n\n tetherOptions.element = step.el;\n tetherOptions.target = target;\n\n return new Tether(tetherOptions);\n}\n\n","function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction validate_store(store, name) {\n if (!store || typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, callback) {\n const unsub = store.subscribe(callback);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, fn) {\n return definition[1]\n ? assign({}, assign(ctx.$$scope.ctx, definition[1](fn ? fn(ctx) : {})))\n : ctx.$$scope.ctx;\n}\nfunction get_slot_changes(definition, ctx, changed, fn) {\n return definition[1]\n ? assign({}, assign(ctx.$$scope.changed || {}, definition[1](fn ? fn(changed) : {})))\n : ctx.$$scope.changed || {};\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value = ret) {\n store.set(value);\n return ret;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nlet running = false;\nfunction run_tasks() {\n tasks.forEach(task => {\n if (!task[0](now())) {\n tasks.delete(task);\n task[1]();\n }\n });\n running = tasks.size > 0;\n if (running)\n raf(run_tasks);\n}\nfunction clear_loops() {\n // for testing...\n tasks.forEach(task => tasks.delete(task));\n running = false;\n}\nfunction loop(fn) {\n let task;\n if (!running) {\n running = true;\n raf(run_tasks);\n }\n return {\n promise: new Promise(fulfil => {\n tasks.add(task = [fn, fulfil]);\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction detach(node) {\n node.parentNode.removeChild(node);\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n // eslint-disable-next-line @typescript-eslint/no-object-literal-type-assertion\n const target = {};\n for (const k in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n for (const key in attributes) {\n if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key in node) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group) {\n const value = [];\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.push(group[i].__value);\n }\n return value;\n}\nfunction to_number(value) {\n return value === '' ? undefined : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction claim_element(nodes, name, attributes, svg) {\n for (let i = 0; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeName === name) {\n for (let j = 0; j < node.attributes.length; j += 1) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name])\n node.removeAttribute(attribute.name);\n }\n return nodes.splice(i, 1)[0]; // TODO strip unwanted attributes\n }\n }\n return svg ? svg_element(name) : element(name);\n}\nfunction claim_text(nodes, data) {\n for (let i = 0; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 3) {\n node.data = '' + data;\n return nodes.splice(i, 1)[0];\n }\n }\n return text(data);\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.data !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n if (value != null || input.value) {\n input.value = value;\n }\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n node.style.setProperty(key, value, important ? 'important' : '');\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\nfunction add_resize_listener(element, fn) {\n if (getComputedStyle(element).position === 'static') {\n element.style.position = 'relative';\n }\n const object = document.createElement('object');\n object.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; pointer-events: none; z-index: -1;');\n object.type = 'text/html';\n object.tabIndex = -1;\n let win;\n object.onload = () => {\n win = object.contentDocument.defaultView;\n win.addEventListener('resize', fn);\n };\n if (/Trident/.test(navigator.userAgent)) {\n element.appendChild(object);\n object.data = 'about:blank';\n }\n else {\n object.data = 'about:blank';\n element.appendChild(object);\n }\n return {\n cancel: () => {\n win && win.removeEventListener && win.removeEventListener('resize', fn);\n element.removeChild(object);\n }\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, false, false, detail);\n return e;\n}\nclass HtmlTag {\n constructor(html, anchor = null) {\n this.e = element('div');\n this.a = anchor;\n this.u(html);\n }\n m(target, anchor = null) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(target, this.n[i], anchor);\n }\n this.t = target;\n }\n u(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n p(html) {\n this.d();\n this.u(html);\n this.m(this.t, this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\n\nlet stylesheet;\nlet active = 0;\nlet current_rules = {};\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n if (!current_rules[name]) {\n if (!stylesheet) {\n const style = element('style');\n document.head.appendChild(style);\n stylesheet = style.sheet;\n }\n current_rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ``}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n node.style.animation = (node.style.animation || '')\n .split(', ')\n .filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n )\n .join(', ');\n if (name && !--active)\n clear_rules();\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n let i = stylesheet.cssRules.length;\n while (i--)\n stylesheet.deleteRule(i);\n current_rules = {};\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error(`Function called outside component initialization`);\n return current_component;\n}\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\nfunction createEventDispatcher() {\n const component = current_component;\n return (type, detail) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail);\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n }\n };\n}\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n}\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n callbacks.slice().forEach(fn => fn(event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\nfunction flush() {\n const seen_callbacks = new Set();\n do {\n // first, call beforeUpdate functions\n // and update components\n while (dirty_components.length) {\n const component = dirty_components.shift();\n set_current_component(component);\n update(component.$$);\n }\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n callback();\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n}\nfunction update($$) {\n if ($$.fragment) {\n $$.update($$.dirty);\n run_all($$.before_update);\n $$.fragment.p($$.dirty, $$.ctx);\n $$.dirty = null;\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = program.b - t;\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = key && { [key]: value };\n const child_ctx = assign(assign({}, info.ctx), info.resolved);\n const block = type && (info.current = type)(child_ctx);\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n info.blocks[i] = null;\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n flush();\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = { [info.value]: promise };\n }\n}\n\nconst globals = (typeof window !== 'undefined' ? window : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, changed, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(changed, child_ctx);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction measure(blocks) {\n const rects = {};\n let i = blocks.length;\n while (i--)\n rects[blocks[i].key] = blocks[i].node.getBoundingClientRect();\n return rects;\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args) {\n const attributes = Object.assign({}, ...args);\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === undefined)\n return;\n if (value === true)\n str += \" \" + name;\n const escaped = String(value)\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n str += \" \" + name + \"=\" + JSON.stringify(escaped);\n });\n return str;\n}\nconst escaped = {\n '\"': '"',\n \"'\": ''',\n '&': '&',\n '<': '<',\n '>': '>'\n};\nfunction escape(html) {\n return String(html).replace(/[\"'&<>]/g, match => escaped[match]);\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(parent_component ? parent_component.$$.context : []),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, options = {}) => {\n on_destroy = [];\n const result = { head: '', css: new Set() };\n const html = $$render(result, props, {}, options);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n return ` ${name}${value === true ? '' : `=${typeof value === 'string' ? JSON.stringify(escape(value)) : `\"${value}\"`}`}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : ``;\n}\n\nfunction bind(component, name, callback) {\n if (component.$$.props.indexOf(name) === -1)\n return;\n component.$$.bound[name] = callback;\n callback(component.$$.ctx[name]);\n}\nfunction mount_component(component, target, anchor) {\n const { fragment, on_mount, on_destroy, after_update } = component.$$;\n fragment.m(target, anchor);\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = on_mount.map(run).filter(is_function);\n if (on_destroy) {\n on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n if (component.$$.fragment) {\n run_all(component.$$.on_destroy);\n component.$$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n component.$$.on_destroy = component.$$.fragment = null;\n component.$$.ctx = {};\n }\n}\nfunction make_dirty(component, key) {\n if (!component.$$.dirty) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty = blank_object();\n }\n component.$$.dirty[key] = true;\n}\nfunction init(component, options, instance, create_fragment, not_equal, prop_names) {\n const parent_component = current_component;\n set_current_component(component);\n const props = options.props || {};\n const $$ = component.$$ = {\n fragment: null,\n ctx: null,\n // state\n props: prop_names,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n before_update: [],\n after_update: [],\n context: new Map(parent_component ? parent_component.$$.context : []),\n // everything else\n callbacks: blank_object(),\n dirty: null\n };\n let ready = false;\n $$.ctx = instance\n ? instance(component, props, (key, ret, value = ret) => {\n if ($$.ctx && not_equal($$.ctx[key], $$.ctx[key] = value)) {\n if ($$.bound[key])\n $$.bound[key](value);\n if (ready)\n make_dirty(component, key);\n }\n return ret;\n })\n : props;\n $$.update();\n ready = true;\n run_all($$.before_update);\n $$.fragment = create_fragment($$.ctx);\n if (options.target) {\n if (options.hydrate) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment.l(children(options.target));\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor);\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement !== 'undefined') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set() {\n // overridden by instance, if it has props\n }\n };\n}\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set() {\n // overridden by instance, if it has props\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, detail));\n}\nfunction append_dev(target, node) {\n dispatch_dev(\"SvelteDOMInsert\", { target, node });\n append(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev(\"SvelteDOMInsert\", { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev(\"SvelteDOMRemove\", { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? [\"capture\"] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev(\"SvelteDOMAddEventListener\", { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev(\"SvelteDOMRemoveEventListener\", { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev(\"SvelteDOMRemoveAttribute\", { node, attribute });\n else\n dispatch_dev(\"SvelteDOMSetAttribute\", { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev(\"SvelteDOMSetProperty\", { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev(\"SvelteDOMSetDataset\", { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.data === data)\n return;\n dispatch_dev(\"SvelteDOMSetData\", { node: text, data });\n text.data = data;\n}\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(`'target' is a required option`);\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn(`Component was already destroyed`); // eslint-disable-line no-console\n };\n }\n}\n\nexport { HtmlTag, SvelteComponent, SvelteComponentDev, SvelteElement, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_transform, afterUpdate, append, append_dev, assign, attr, attr_dev, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_element, claim_space, claim_text, clear_loops, component_subscribe, createEventDispatcher, create_animation, create_bidirectional_transition, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, escape, escaped, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getContext, get_binding_group_value, get_current_component, get_slot_changes, get_slot_context, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, identity, init, insert, insert_dev, intros, invalid_attribute_name_character, is_client, is_function, is_promise, listen, listen_dev, loop, measure, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, update_keyed_each, validate_component, validate_store, xlink_attr };\n","<script>\n export let config, step;\n const { action, classes, secondary, text } = config;\n</script>\n\n<style global>\n .shepherd-button {\n background: rgb(50, 136, 230);\n border: 0;\n border-radius: 3px;\n color: rgba(255, 255, 255, 0.75);\n cursor: pointer;\n margin-right: 0.5rem;\n padding: 0.5rem 1.5rem;\n transition: all 0.5s ease;\n }\n\n .shepherd-button:hover {\n background: rgb(25, 111, 204);\n color: rgba(255, 255, 255, 0.75);\n }\n\n .shepherd-button.shepherd-button-secondary {\n background: rgb(241, 242, 243);\n color: rgba(0, 0, 0, 0.75);\n }\n\n .shepherd-button.shepherd-button-secondary:hover {\n background: rgb(214, 217, 219);\n color: rgba(0, 0, 0, 0.75);\n }\n</style>\n\n<button\n class=\"{`${(classes || '')} shepherd-button ${(secondary ? 'shepherd-button-secondary' : '')}`}\"\n on:click={action ? action.bind(step.tour) : null}\n tabindex=\"0\"\n>\n {text}\n</button>\n","<script>\n import ShepherdButton from './shepherd-button.svelte';\n\n export let step;\n const { buttons } = step.options;\n</script>\n\n<style global>\n .shepherd-footer {\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n display: flex;\n justify-content: flex-end;\n padding: 0 0.75rem 0.75rem;\n }\n\n .shepherd-footer .shepherd-button:last-child {\n margin-right: 0;\n }\n</style>\n\n<footer class=\"shepherd-footer\">\n {#if buttons}\n {#each buttons as config}\n <ShepherdButton\n {config}\n {step}\n />\n {/each}\n {/if}\n</footer>\n","<script>\n export let cancelIcon, step;\n\n /**\n * Add a click listener to the cancel link that cancels the tour\n */\n const handleCancelClick = (e) => {\n e.preventDefault();\n step.cancel();\n };\n</script>\n\n<style global>\n .shepherd-cancel-icon {\n background: transparent;\n border: none;\n color: rgba(128, 128, 128, 0.75);\n font-size: 2em;\n cursor: pointer;\n font-weight: normal;\n margin: 0;\n padding: 0;\n transition: color 0.5s ease;\n }\n\n .shepherd-cancel-icon:hover {\n color: rgba(0, 0, 0, 0.75);\n }\n\n .shepherd-has-title .shepherd-content .shepherd-cancel-icon {\n color: rgba(128, 128, 128, 0.75);\n }\n\n .shepherd-has-title .shepherd-content .shepherd-cancel-icon:hover {\n color: rgba(0, 0, 0, 0.75);\n }\n</style>\n\n<button\n aria-label=\"{cancelIcon.label ? cancelIcon.label : 'Close Tour'}\"\n class=\"shepherd-cancel-icon\"\n on:click={handleCancelClick}\n type=\"button\"\n>\n <span aria-hidden=\"true\">×</span>\n</button>\n","<script>\n export let labelId, title;\n</script>\n\n<style global>\n .shepherd-title {\n color: rgba(0, 0, 0, 0.75);\n display: flex;\n font-size: 1rem;\n font-weight: normal;\n flex: 1 0 auto;\n margin: 0;\n padding: 0;\n }\n</style>\n\n<h3\n id=\"{labelId}\"\n class=\"shepherd-title\"\n>\n {title}\n</h3>\n","<script>\n import ShepherdCancelIcon from './shepherd-cancel-icon.svelte';\n import ShepherdTitle from './shepherd-title.svelte';\n\n export let labelId, step;\n const { cancelIcon, title } = step.options;\n</script>\n\n<style global>\n .shepherd-header {\n align-items: center;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n display: flex;\n justify-content: flex-end;\n line-height: 2em;\n padding: 0.75rem 0.75rem 0;\n }\n\n .shepherd-has-title .shepherd-content .shepherd-header {\n background: #e6e6e6;\n padding: 1em;\n }\n</style>\n\n<header class=\"shepherd-header\">\n {#if title}\n <ShepherdTitle\n {labelId}\n {title}\n />\n {/if}\n\n {#if cancelIcon && cancelIcon.enabled}\n <ShepherdCancelIcon\n {cancelIcon}\n {step}\n />\n {/if}\n</header>\n","<script>\n import { afterUpdate } from 'svelte';\n import { isElement, isFunction } from '../utils/type-check';\n\n export let descriptionId, element, step;\n\n afterUpdate(() => {\n let { text } = step.options;\n\n if (isFunction(text)) {\n text = text.call(step);\n }\n\n if (isElement(text)) {\n element.appendChild(text);\n } else {\n element.innerHTML = text;\n }\n });\n</script>\n\n<style global>\n .shepherd-text {\n color: rgba(0, 0, 0, 0.75);\n font-size: 1rem;\n line-height: 1.3em;\n padding: 0.75em;\n }\n\n .shepherd-text p {\n margin-top: 0;\n }\n\n .shepherd-text p:last-child {\n margin-bottom: 0;\n }\n</style>\n\n<div\n bind:this={element}\n class=\"shepherd-text\"\n id=\"{descriptionId}\"\n>\n</div>\n\n","<script>\n import ShepherdFooter from './shepherd-footer.svelte';\n import ShepherdHeader from './shepherd-header.svelte';\n import ShepherdText from './shepherd-text.svelte';\n import { isUndefined } from '../utils/type-check.js';\n\n export let descriptionId, labelId, step;\n</script>\n\n<style global>\n .shepherd-content {\n border-radius: 5px;\n outline: none;\n padding: 0;\n }\n</style>\n\n<div\n class=\"shepherd-content\"\n>\n <ShepherdHeader\n {labelId}\n {step}\n />\n\n {#if !isUndefined(step.options.text)}\n <ShepherdText\n {descriptionId}\n {step}\n />\n {/if}\n\n {#if Array.isArray(step.options.buttons) && step.options.buttons.length}\n <ShepherdFooter\n {step}\n />\n {/if}\n</div>\n\n","<script>\n import { onMount } from 'svelte';\n import ShepherdContent from './shepherd-content.svelte';\n import { isUndefined } from '../utils/type-check.js';\n\n const KEY_TAB = 9;\n const KEY_ESC = 27;\n const LEFT_ARROW = 37;\n const RIGHT_ARROW = 39;\n\n export let classes, classPrefix, element, descriptionId, firstFocusableElement,\n focusableElements, labelId, lastFocusableElement, step;\n const dataStepId = { [`data-${classPrefix}shepherd-step-id`]: step.id };\n const hasCancelIcon = step.options && step.options.cancelIcon && step.options.cancelIcon.enabled;\n const hasTitle = step.options && step.options.title;\n\n export const getElement = () => element;\n\n onMount(() => {\n // Get all elements that are focusable\n focusableElements = element.querySelectorAll('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex=\"0\"]');\n firstFocusableElement = focusableElements[0];\n lastFocusableElement = focusableElements[focusableElements.length - 1];\n });\n\n /**\n * Setup keydown events to allow closing the modal with ESC\n *\n * Borrowed from this great post! https://bitsofco.de/accessible-modal-dialog/\n *\n * @private\n */\n const handleKeyDown = (e) => {\n const { tour } = step;\n switch (e.keyCode) {\n case KEY_TAB:\n if (focusableElements.length === 0) {\n e.preventDefault();\n break;\n }\n // Backward tab\n if (e.shiftKey) {\n if (document.activeElement === firstFocusableElement) {\n e.preventDefault();\n lastFocusableElement.focus();\n }\n } else {\n if (document.activeElement === lastFocusableElement) {\n e.preventDefault();\n firstFocusableElement.focus();\n }\n }\n break;\n case KEY_ESC:\n if (tour.options.exitOnEsc) {\n step.cancel();\n }\n break;\n case LEFT_ARROW:\n if (tour.options.keyboardNavigation) {\n tour.back();\n }\n break;\n case RIGHT_ARROW:\n if (tour.options.keyboardNavigation) {\n tour.next();\n }\n break;\n default:\n break;\n }\n };\n</script>\n\n<style global>\n .shepherd-element {\n background: #fff;\n border-radius: 5px;\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);\n max-width: 400px;\n outline: none;\n z-index: 9999;\n }\n\n .shepherd-element, .shepherd-element *, .shepherd-element *:after, .shepherd-element *:before {\n box-sizing: border-box;\n }\n\n .shepherd-element .shepherd-arrow {\n border: 16px solid transparent;\n content: '';\n display: block;\n height: 16px;\n pointer-events: none;\n position: absolute;\n width: 16px;\n z-index: 10000;\n }\n\n /**\n * Arrow on bottom of tooltip centered horizontally\n */\n .shepherd-element.shepherd-element-attached-bottom.shepherd-element-attached-center .shepherd-arrow,\n .shepherd-element.shepherd-pinned-top .shepherd-arrow {\n bottom: 0;\n border-top-color: #fff;\n left: 50%;\n transform: translate(-50%, 100%);\n }\n\n /**\n * Arrow on top of tooltip centered horizontally\n */\n .shepherd-element.shepherd-element-attached-top.shepherd-element-attached-center .shepherd-arrow {\n border-bottom-color: #fff;\n left: 50%;\n top: 0;\n transform: translate(-50%, -100%);\n }\n\n /**\n * Arrow on top of tooltip centered horizontally, with title color\n */\n .shepherd-element.shepherd-element-attached-top.shepherd-element-attached-center.shepherd-has-title .shepherd-arrow {\n border-bottom-color: #e6e6e6;\n }\n\n /**\n * Arrow on left of tooltip, centered vertically\n */\n .shepherd-element.shepherd-element-attached-middle.shepherd-element-attached-left .shepherd-arrow,\n .shepherd-element.shepherd-pinned-right .shepherd-arrow {\n border-right-color: #fff;\n left: 0;\n top: 50%;\n transform: translate(-100%, -50%);\n }\n\n /**\n * Arrow on right of tooltip, centered vertically\n */\n .shepherd-element.shepherd-element-attached-middle.shepherd-element-attached-right .shepherd-arrow,\n .shepherd-element.shepherd-pinned-left .shepherd-arrow {\n border-left-color: #fff;\n right: 0;\n top: 50%;\n transform: translate(100%, -50%);\n }\n</style>\n\n<div\n aria-describedby={!isUndefined(step.options.text) ? descriptionId : null}\n aria-labelledby={step.options.title ? labelId : null}\n bind:this={element}\n class=\"{`${classes} shepherd-element ${hasCancelIcon ? 'shepherd-has-cancel-icon' : ''} ${hasTitle ? 'shepherd-has-title' : ''}`}\"\n {...dataStepId}\n on:keydown={handleKeyDown}\n role=\"dialog\"\n tabindex=\"0\"\n>\n {#if step.options.arrow && step.options.attachTo && step.options.attachTo.element}\n <div class=\"shepherd-arrow\"></div>\n {/if}\n <ShepherdContent\n {descriptionId}\n {labelId}\n {step}\n />\n</div>\n","/* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */\n(function () {\n 'use strict';\n\n // polyfill\n function polyfill() {\n // aliases\n var w = window;\n var d = document;\n\n // return if scroll behavior is supported and polyfill is not forced\n if (\n 'scrollBehavior' in d.documentElement.style &&\n w.__forceSmoothScrollPolyfill__ !== true\n ) {\n return;\n }\n\n // globals\n var Element = w.HTMLElement || w.Element;\n var SCROLL_TIME = 468;\n\n // object gathering original scroll methods\n var original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element.prototype.scroll || scrollElement,\n scrollIntoView: Element.prototype.scrollIntoView\n };\n\n // define timing method\n var now =\n w.performance && w.performance.now\n ? w.performance.now.bind(w.performance)\n : Date.now;\n\n /**\n * indicates if a the current browser is made by Microsoft\n * @method isMicrosoftBrowser\n * @param {String} userAgent\n * @returns {Boolean}\n */\n function isMicrosoftBrowser(userAgent) {\n var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\n\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\n }\n\n /*\n * IE has rounding bug rounding down clientHeight and clientWidth and\n * rounding up scrollHeight and scrollWidth causing false positives\n * on hasScrollableSpace\n */\n var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n\n /**\n * changes scroll position inside an element\n * @method scrollElement\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function scrollElement(x, y) {\n this.scrollLeft = x;\n this.scrollTop = y;\n }\n\n /**\n * returns result of applying ease math function to a number\n * @method ease\n * @param {Number} k\n * @returns {Number}\n */\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n\n /**\n * indicates if a smooth behavior should be applied\n * @method shouldBailOut\n * @param {Number|Object} firstArg\n * @returns {Boolean}\n */\n function shouldBailOut(firstArg) {\n if (\n firstArg === null ||\n typeof firstArg !== 'object' ||\n firstArg.behavior === undefined ||\n firstArg.behavior === 'auto' ||\n firstArg.behavior === 'instant'\n ) {\n // first argument is not an object/null\n // or behavior is auto, instant or undefined\n return true;\n }\n\n if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {\n // first argument is an object and behavior is smooth\n return false;\n }\n\n // throw error when behavior is not supported\n throw new TypeError(\n 'behavior member of ScrollOptions ' +\n firstArg.behavior +\n ' is not a valid value for enumeration ScrollBehavior.'\n );\n }\n\n /**\n * indicates if an element has scrollable space in the provided axis\n * @method hasScrollableSpace\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function hasScrollableSpace(el, axis) {\n if (axis === 'Y') {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n\n if (axis === 'X') {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n\n /**\n * indicates if an element has a scrollable overflow property in the axis\n * @method canOverflow\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function canOverflow(el, axis) {\n var overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\n\n return overflowValue === 'auto' || overflowValue === 'scroll';\n }\n\n /**\n * indicates if an element can be scrolled in either axis\n * @method isScrollable\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function isScrollable(el) {\n var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\n var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\n\n return isScrollableY || isScrollableX;\n }\n\n /**\n * finds scrollable parent of an element\n * @method findScrollableParent\n * @param {Node} el\n * @returns {Node} el\n */\n function findScrollableParent(el) {\n while (el !== d.body && isScrollable(el) === false) {\n el = el.parentNode || el.host;\n }\n\n return el;\n }\n\n /**\n * self invoked function that, given a context, steps through scrolling\n * @method step\n * @param {Object} context\n * @returns {undefined}\n */\n function step(context) {\n var time = now();\n var value;\n var currentX;\n var currentY;\n var elapsed = (time - context.startTime) / SCROLL_TIME;\n\n // avoid elapsed times higher than one\n elapsed = elapsed > 1 ? 1 : elapsed;\n\n // apply easing to elapsed time\n value = ease(elapsed);\n\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n\n context.method.call(context.scrollable, currentX, currentY);\n\n // scroll more if we have not reached our destination\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n\n /**\n * scrolls window or element with a smooth behavior\n * @method smoothScroll\n * @param {Object|Node} el\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function smoothScroll(el, x, y) {\n var scrollable;\n var startX;\n var startY;\n var method;\n var startTime = now();\n\n // define scroll context\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n }\n\n // scroll looping over a frame\n step({\n scrollable: scrollable,\n method: method,\n startTime: startTime,\n startX: startX,\n startY: startY,\n x: x,\n y: y\n });\n }\n\n // ORIGINAL METHODS OVERRIDES\n // w.scroll and w.scrollTo\n w.scroll = w.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object'\n ? arguments[0]\n : w.scrollX || w.pageXOffset,\n // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined\n ? arguments[1]\n : w.scrollY || w.pageYOffset\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : w.scrollX || w.pageXOffset,\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : w.scrollY || w.pageYOffset\n );\n };\n\n // w.scrollBy\n w.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object' ? arguments[0] : 0,\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined ? arguments[1] : 0\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n ~~arguments[0].left + (w.scrollX || w.pageXOffset),\n ~~arguments[0].top + (w.scrollY || w.pageYOffset)\n );\n };\n\n // Element.prototype.scroll and Element.prototype.scrollTo\n Element.prototype.scroll = Element.prototype.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n // if one number is passed, throw error to match Firefox implementation\n if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\n throw new SyntaxError('Value could not be converted');\n }\n\n original.elementScroll.call(\n this,\n // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft,\n // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop\n );\n\n return;\n }\n\n var left = arguments[0].left;\n var top = arguments[0].top;\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n this,\n this,\n typeof left === 'undefined' ? this.scrollLeft : ~~left,\n typeof top === 'undefined' ? this.scrollTop : ~~top\n );\n };\n\n // Element.prototype.scrollBy\n Element.prototype.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(\n this,\n arguments[0].left !== undefined\n ? ~~arguments[0].left + this.scrollLeft\n : ~~arguments[0] + this.scrollLeft,\n arguments[0].top !== undefined\n ? ~~arguments[0].top + this.scrollTop\n : ~~arguments[1] + this.scrollTop\n );\n\n return;\n }\n\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n });\n };\n\n // Element.prototype.scrollIntoView\n Element.prototype.scrollIntoView = function() {\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(\n this,\n arguments[0] === undefined ? true : arguments[0]\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n var scrollableParent = findScrollableParent(this);\n var parentRects = scrollableParent.getBoundingClientRect();\n var clientRects = this.getBoundingClientRect();\n\n if (scrollableParent !== d.body) {\n // reveal element inside parent\n smoothScroll.call(\n this,\n scrollableParent,\n scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n scrollableParent.scrollTop + clientRects.top - parentRects.top\n );\n\n // reveal parent in viewport unless is fixed\n if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: 'smooth'\n });\n }\n } else {\n // reveal element in viewport\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: 'smooth'\n });\n }\n };\n }\n\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n // commonjs\n module.exports = { polyfill: polyfill };\n } else {\n // global\n polyfill();\n }\n\n}());\n","import { Evented } from '../../node_modules/tether/src/js/evented.js';\nimport autoBind from './utils/auto-bind.js';\nimport { isElement, isFunction, isUndefined } from './utils/type-check.js';\nimport { bindAdvance } from './utils/bind.js';\nimport { setupTooltip, parseAttachTo, normalizePrefix, uuid } from './utils/general.js';\nimport ShepherdElement from './components/shepherd-element.svelte';\n\n// Polyfills\nimport smoothscroll from 'smoothscroll-polyfill';\n\nsmoothscroll.polyfill();\n\n/**\n * A class representing steps to be added to a tour.\n * @extends {Evented}\n */\nexport class Step extends Evented {\n /**\n * Create a step\n * @param {Tour} tour The tour for the step\n * @param {Object} options The options for the step\n * @param {Object} options.arrow Whether to display the arrow for the tooltip or not.\n * @param {Object} options.attachTo What element the step should be attached to on the page.\n * It should be an object with the properties `element` and `on`, where `element` is an element selector string\n * or a DOM element and `on` is the optional direction to place the Tippy tooltip.\n *\n * ```js\n * const new Step(tour, {\n * attachTo: { element: '.some .selector-path', on: 'left' },\n * ...moreOptions\n * })'\n * ```\n *\n * If you don’t specify an attachTo the element will appear in the middle of the screen.\n * If you omit the `on` portion of `attachTo`, the element will still be highlighted, but the tooltip will appear\n * in the middle of the screen, without an arrow pointing to the target.\n * @param {HTMLElement|string} options.attachTo.element\n * @param {string} options.attachTo.on\n * @param {Object} options.advanceOn An action on the page which should advance shepherd to the next step.\n * It should be an object with a string `selector` and an `event` name\n * ```js\n * const new Step(tour, {\n * advanceOn: { selector: '.some .selector-path', event: 'click' },\n * ...moreOptions\n * })'\n * ```\n * `event` doesn’t have to be an event inside the tour, it can be any event fired on any element on the page.\n * You can also always manually advance the Tour by calling `myTour.next()`.\n * @param {function} options.beforeShowPromise A function that returns a promise.\n * When the promise resolves, the rest of the `show` code for the step will execute.\n * @param {Object[]} options.buttons An array of buttons to add to the step. These will be rendered in a\n * footer below the main body text.\n * @param {function} options.buttons.button.action A function executed when the button is clicked on.\n * It is automatically bound to the `tour` the step is associated with, so things like `this.next` will\n * work inside the action.\n * You can use action to skip steps or navigate to specific steps, with something like:\n * ```js\n * action() {\n * return this.show('some_step_name');\n * }\n * ```\n * @param {string} options.buttons.button.classes Extra classes to apply to the `<a>`\n * @param {boolean} options.buttons.button.secondary If true, a shepherd-button-secondary class is applied to the button\n * @param {string} options.buttons.button.text The HTML text of the button\n * @param {boolean} options.canClickTarget A boolean, that when set to false, will set `pointer-events: none` on the target\n * @param {object} options.cancelIcon Options for the cancel icon\n * @param {boolean} options.cancelIcon.enabled Should a cancel “✕” be shown in the header of the step?\n * @param {string} options.cancelIcon.label The label to add for `aria-label`\n * @param {string} options.classes A string of extra classes to add to the step's content element.\n * @param {string} options.highlightClass An extra class to apply to the `attachTo` element when it is\n * highlighted (that is, when its step is active). You can then target that selector in your CSS.\n * @param {string} options.id The string to use as the `id` for the step.\n * @param {boolean|Object} options.scrollTo Should the element be scrolled to when this step is shown? If true, uses the default `scrollIntoView`,\n * if an object, passes that object as the params to `scrollIntoView` i.e. `{behavior: 'smooth', block: 'center'}`\n * @param {function} options.scrollToHandler A function that lets you override the default scrollTo behavior and\n * define a custom action to do the scrolling, and possibly other logic.\n * @param {function} options.showOn A function that, when it returns `true`, will show the step.\n * If it returns false, the step will be skipped.\n * @param {string} options.text The text in the body of the step. It can be one of three types:\n * ```\n * - HTML string\n * - `HTMLElement` object\n * - `Function` to be executed when the step is built. It must return one the two options above.\n * ```\n * @param {string} options.title The step's title. It becomes an `h3` at the top of the step.\n * @param {Object} options.when You can define `show`, `hide`, etc events inside `when`. For example:\n * ```js\n * when: {\n * show: function() {\n * window.scrollTo(0, 0);\n * }\n * }\n * ```\n * @param {Number} options.modalOverlayOpeningPadding An amount of padding to add around the modal overlay opening\n * @return {Step} The newly created Step instance\n */\n constructor(tour, options = {}) {\n super(tour, options);\n this.tour = tour;\n this.classPrefix = this.tour.options ? normalizePrefix(this.tour.options.classPrefix) : '';\n this.styles = tour.styles;\n\n autoBind(this);\n\n this._setOptions(options);\n\n return this;\n }\n\n /**\n * Cancel the tour\n * Triggers the `cancel` event\n */\n cancel() {\n this.tour.cancel();\n this.trigger('cancel');\n }\n\n /**\n * Complete the tour\n * Triggers the `complete` event\n */\n complete() {\n this.tour.complete();\n this.trigger('complete');\n }\n\n /**\n * Remove the step, delete the step's element, and destroy the tippy instance for the step\n * Triggers `destroy` event\n */\n destroy() {\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n\n if (isElement(this.el) && this.el.parentNode) {\n this.el.parentNode.removeChild(this.el);\n this.el = null;\n }\n\n if (this.target) {\n this._updateStepTargetOnHide();\n }\n\n this.trigger('destroy');\n }\n\n /**\n * Returns the tour for the step\n * @return {Tour} The tour instance\n */\n getTour() {\n return this.tour;\n }\n\n /**\n * Hide the step\n */\n hide() {\n this.tour.modal.hide();\n\n this.trigger('before-hide');\n\n if (this.el) {\n this.el.hidden = true;\n }\n\n if (this.target) {\n this._updateStepTargetOnHide();\n }\n\n this.trigger('hide');\n }\n\n /**\n * Check if the step is open and visible\n * @return {boolean} True if the step is open and visible\n */\n isOpen() {\n return Boolean(this.el && !this.el.hidden);\n }\n\n /**\n * Wraps `_show` and ensures `beforeShowPromise` resolves before calling show\n * @return {*|Promise}\n */\n show() {\n if (isFunction(this.options.beforeShowPromise)) {\n const beforeShowPromise = this.options.beforeShowPromise();\n if (!isUndefined(beforeShowPromise)) {\n return beforeShowPromise.then(() => this._show());\n }\n }\n this._show();\n }\n\n /**\n * Updates the options of the step.\n *\n * @param {Object} options The options for the step\n */\n updateStepOptions(options) {\n this.options = Object.assign(this.options, options);\n\n if (this.shepherdElementComponent) {\n this.shepherdElementComponent.$set({ step: this });\n }\n }\n\n /**\n * Creates Shepherd element for step based on options\n *\n * @return {Element} The DOM element for the step tooltip\n * @private\n */\n _createTooltipContent() {\n const classes = this.options.classes || '';\n const descriptionId = `${this.id}-description`;\n const labelId = `${this.id}-label`;\n\n this.shepherdElementComponent = new ShepherdElement({\n target: document.body,\n props:\n {\n classPrefix: this.classPrefix,\n classes,\n descriptionId,\n labelId,\n step: this,\n styles: this.styles\n }\n });\n\n return this.shepherdElementComponent.getElement();\n }\n\n /**\n * If a custom scrollToHandler is defined, call that, otherwise do the generic\n * scrollIntoView call.\n *\n * @param {boolean|Object} scrollToOptions If true, uses the default `scrollIntoView`,\n * if an object, passes that object as the params to `scrollIntoView` i.e. `{ behavior: 'smooth', block: 'center' }`\n * @private\n */\n _scrollTo(scrollToOptions) {\n const { element } = parseAttachTo(this);\n\n if (isFunction(this.options.scrollToHandler)) {\n this.options.scrollToHandler(element);\n } else if (isElement(element)) {\n element.scrollIntoView(scrollToOptions);\n }\n }\n\n /**\n * _getClassOptions gets all possible classes for the step\n * @param {Object} stepOptions The step specific options\n * @returns {String} unique string from array of classes\n * @private\n */\n _getClassOptions(stepOptions) {\n const defaultStepOptions =\n this.tour && this.tour.options && this.tour.options.defaultStepOptions;\n const stepClasses = stepOptions.classes ? stepOptions.classes : '';\n const defaultStepOptionsClasses =\n defaultStepOptions && defaultStepOptions.classes\n ? defaultStepOptions.classes\n : '';\n const allClasses = [\n ...stepClasses.split(' '),\n ...defaultStepOptionsClasses.split(' ')\n ];\n const uniqClasses = new Set(allClasses);\n\n return Array.from(uniqClasses)\n .join(' ')\n .trim();\n }\n\n /**\n * Sets the options for the step, maps `when` to events, sets up buttons\n * @param {Object} options The options for the step\n * @private\n */\n _setOptions(options = {}) {\n const tourOptions =\n this.tour && this.tour.options && this.tour.options.defaultStepOptions;\n\n this.options = Object.assign(\n {\n arrow: true\n },\n tourOptions,\n options\n );\n\n const { when } = this.options;\n\n this.options.classes = this._getClassOptions(options);\n\n this.destroy();\n this.id = this.options.id || `step-${uuid()}`;\n\n if (when) {\n Object.keys(when).forEach((event) => {\n this.on(event, when[event], this);\n });\n }\n }\n\n /**\n * Create the element and set up the Tether instance\n * @private\n */\n _setupElements() {\n if (!isUndefined(this.el)) {\n this.destroy();\n }\n\n this.el = this._createTooltipContent();\n\n if (this.options.advanceOn) {\n bindAdvance(this);\n }\n\n setupTooltip(this);\n }\n\n /**\n * Triggers `before-show`, generates the tooltip DOM content,\n * sets up a Tether instance for the tooltip, then triggers `show`.\n * @private\n */\n _show() {\n this.trigger('before-show');\n\n this._setupElements();\n\n this.tour.modal.setupForStep(this);\n this._styleTargetElementForStep(this);\n\n this.el.hidden = false;\n\n this.tooltip.position();\n\n const target = this.target || document.body;\n target.classList.add(`${this.classPrefix}shepherd-enabled`, `${this.classPrefix}shepherd-target`);\n\n if (this.options.scrollTo) {\n setTimeout(() => {\n this._scrollTo(this.options.scrollTo);\n });\n }\n\n this.trigger('show');\n this.el.focus();\n }\n\n /**\n * Modulates the styles of the passed step's target element, based on the step's options and\n * the tour's `modal` option, to visually emphasize the element\n *\n * @param step The step object that attaches to the element\n * @private\n */\n _styleTargetElementForStep(step) {\n const targetElement = step.target;\n\n if (!targetElement) {\n return;\n }\n\n if (step.options.highlightClass) {\n targetElement.classList.add(step.options.highlightClass);\n }\n\n if (step.options.canClickTarget === false) {\n targetElement.style.pointerEvents = 'none';\n }\n }\n\n /**\n * When a step is hidden, remove the highlightClass and 'shepherd-enabled'\n * and 'shepherd-target' classes\n * @private\n */\n _updateStepTargetOnHide() {\n if (this.options.highlightClass) {\n this.target.classList.remove(this.options.highlightClass);\n }\n\n this.target.classList.remove(`${this.classPrefix}shepherd-enabled`, `${this.classPrefix}shepherd-target`);\n }\n}\n","<script>\n import { uuid } from '../utils/general.js';\n\n export let element, openingProperties;\n const guid = uuid();\n let modalIsVisible = false;\n let rafId = undefined;\n\n closeModalOpening();\n\n export const getElement = () => element;\n\n export function closeModalOpening() {\n openingProperties = {\n height: 0,\n x: 0,\n y: 0,\n width: 0\n };\n }\n\n /**\n * Hide the modal overlay\n */\n export function hide() {\n modalIsVisible = false;\n\n // Ensure we cleanup all event listeners when we hide the modal\n _cleanupStepEventListeners();\n }\n\n /**\n * Uses the bounds of the element we want the opening overtop of to set the dimensions of the opening and position it\n * @param {HTMLElement} targetElement The element the opening will expose\n * @param {HTMLElement} scrollParent The scrollable parent of the target element\n * @param {Number} modalOverlayOpeningPadding An amount of padding to add around the modal overlay opening\n */\n export function positionModalOpening(targetElement, scrollParent, modalOverlayOpeningPadding = 0) {\n if (targetElement.getBoundingClientRect) {\n const { y, height } = _getVisibleHeight(targetElement, scrollParent);\n const { x, width, left } = targetElement.getBoundingClientRect();\n\n // getBoundingClientRect is not consistent. Some browsers use x and y, while others use left and top\n openingProperties = {\n x: (x || left) - modalOverlayOpeningPadding,\n y: y - modalOverlayOpeningPadding,\n width: (width + (modalOverlayOpeningPadding * 2)),\n height: (height + (modalOverlayOpeningPadding * 2))\n };\n }\n }\n\n /**\n * If modal is enabled, setup the svg mask opening and modal overlay for the step\n * @param {Step} step The step instance\n */\n export function setupForStep(step) {\n // Ensure we move listeners from the previous step, before we setup new ones\n _cleanupStepEventListeners();\n\n if (step.tour.options.useModalOverlay) {\n _styleForStep(step);\n show();\n } else {\n hide();\n }\n }\n\n /**\n * Show the modal overlay\n */\n export function show() {\n modalIsVisible = true;\n }\n\n const _preventModalBodyTouch = (e) => {\n e.preventDefault();\n };\n\n const _preventModalOverlayTouch = (e) => {\n e.stopPropagation();\n };\n\n /**\n * Add touchmove event listener\n * @private\n */\n function _addStepEventListeners() {\n // Prevents window from moving on touch.\n window.addEventListener('touchmove', _preventModalBodyTouch, {\n passive: false\n });\n }\n\n /**\n * Cancel the requestAnimationFrame loop and remove touchmove event listeners\n * @private\n */\n function _cleanupStepEventListeners() {\n if (rafId) {\n cancelAnimationFrame(rafId);\n rafId = undefined;\n }\n\n window.removeEventListener('touchmove', _preventModalBodyTouch, {\n passive: false\n });\n }\n\n /**\n * Style the modal for the step\n * @param {Step} step The step to style the opening for\n * @private\n */\n function _styleForStep(step) {\n const { modalOverlayOpeningPadding } = step.options;\n\n if (step.target) {\n const scrollParent = _getScrollParent(step.target);\n\n // Setup recursive function to call requestAnimationFrame to update the modal opening position\n const rafLoop = () => {\n rafId = undefined;\n positionModalOpening(step.target, scrollParent, modalOverlayOpeningPadding);\n rafId = requestAnimationFrame(rafLoop);\n };\n\n rafLoop();\n\n _addStepEventListeners();\n } else {\n closeModalOpening();\n }\n }\n\n /**\n * Find the closest scrollable parent element\n * @param {HTMLElement} element The target element\n * @returns {HTMLElement}\n * @private\n */\n function _getScrollParent(element) {\n if (!element) {\n return null;\n }\n\n const isHtmlElement = element instanceof HTMLElement;\n const overflowY = isHtmlElement && window.getComputedStyle(element).overflowY;\n const isScrollable = overflowY !== 'hidden' && overflowY !== 'visible';\n\n\n if (isScrollable && element.scrollHeight >= element.clientHeight) {\n return element;\n }\n\n return _getScrollParent(element.parentElement);\n }\n\n /**\n * Get the visible height of the target element relative to its scrollParent.\n * If there is no scroll parent, the height of the element is returned.\n *\n * @param {HTMLElement} element The target element\n * @param {HTMLElement} [scrollParent] The scrollable parent element\n * @returns {{y: number, height: number}}\n * @private\n */\n function _getVisibleHeight(element, scrollParent) {\n const elementRect = element.getBoundingClientRect();\n let top = elementRect.y || elementRect.top;\n let bottom = elementRect.bottom || top + elementRect.height;\n\n if (scrollParent) {\n const scrollRect = scrollParent.getBoundingClientRect();\n const scrollTop = scrollRect.y || scrollRect.top;\n const scrollBottom = scrollRect.bottom || scrollTop + scrollRect.height;\n\n top = Math.max(top, scrollTop);\n bottom = Math.min(bottom, scrollBottom);\n }\n\n const height = Math.max(bottom - top, 0); // Default to 0 if height is negative\n\n return {y: top, height};\n }\n</script>\n\n<style global>\n .shepherd-modal-overlay-container {\n -ms-filter: progid:dximagetransform.microsoft.gradient.alpha(Opacity=50);\n filter: alpha(opacity=50);\n fill-rule: evenodd;\n height: 0;\n left: 0;\n opacity: 0;\n overflow: hidden;\n pointer-events: none;\n position: fixed;\n top: 0;\n transition: all 0.3s ease-out, height 0ms 0.3s, opacity 0.3s 0ms;\n width: 100vw;\n z-index: 9997;\n }\n\n .shepherd-modal-overlay-container.shepherd-modal-is-visible {\n height: 100vh;\n opacity: 0.5;\n transition: all 0.3s ease-out, height 0s 0s, opacity 0.3s 0s;\n }\n\n .shepherd-modal-overlay-container.shepherd-modal-is-visible path {\n pointer-events: all;\n }\n</style>\n\n<svg\n bind:this={element}\n class=\"{`${(modalIsVisible ? 'shepherd-modal-is-visible' : '')} shepherd-modal-overlay-container`}\"\n on:touchmove={_preventModalOverlayTouch}\n>\n <path\n d=\"{`M ${openingProperties.x} ${openingProperties.y} H ${openingProperties.width + openingProperties.x} V ${openingProperties.height + openingProperties.y} H ${openingProperties.x} L ${openingProperties.x} 0 Z M 0 0 H ${window.innerWidth} V ${window.innerHeight} H 0 L 0 0 Z`}\">\n </path>\n</svg>\n","import { Evented } from '../../node_modules/tether/src/js/evented.js';\nimport { Step } from './step.js';\nimport autoBind from './utils/auto-bind.js';\nimport { isElement, isFunction, isString } from './utils/type-check.js';\nimport { cleanupSteps } from './utils/cleanup.js';\nimport { normalizePrefix, uuid } from './utils/general.js';\nimport ShepherdModal from './components/shepherd-modal.svelte';\n\nconst Shepherd = new Evented();\n\n/**\n * Class representing the site tour\n * @extends {Evented}\n */\nexport class Tour extends Evented {\n /**\n * @param {Object} options The options for the tour\n * @param {boolean} options.confirmCancel If true, will issue a `window.confirm` before cancelling\n * @param {string} options.confirmCancelMessage The message to display in the confirm dialog\n * @param {string} options.classPrefix The prefix to add to all the `shepherd-*` class names.\n * @param {Object} options.defaultStepOptions Default options for Steps ({@link Step#constructor}), created through `addStep`\n * @param {boolean} options.exitOnEsc Exiting the tour with the escape key will be enabled unless this is explicitly\n * set to false.\n * @param {boolean} options.keyboardNavigation Navigating the tour via left and right arrow keys will be enabled\n * unless this is explicitly set to false.\n * @param {HTMLElement} options.modalContainer An optional container element for the modal.\n * If not set, the modal will be appended to `document.body`.\n * @param {object[] | Step[]} options.steps An array of step options objects or Step instances to initialize the tour with\n * @param {string} options.tourName An optional \"name\" for the tour. This will be appended to the the tour's\n * dynamically generated `id` property -- which is also set on the `body` element as the `data-shepherd-active-tour` attribute\n * whenever the tour becomes active.\n * @param {boolean} options.useModalOverlay Whether or not steps should be placed above a darkened\n * modal overlay. If true, the overlay will create an opening around the target element so that it\n * can remain interactive\n * @returns {Tour}\n */\n constructor(options = {}) {\n super(options);\n\n autoBind(this);\n\n const defaultTourOptions = {\n exitOnEsc: true,\n keyboardNavigation: true\n };\n\n this.options = Object.assign({}, defaultTourOptions, options);\n this.classPrefix = normalizePrefix(this.options.classPrefix);\n this.steps = [];\n this.addSteps(this.options.steps);\n\n // Pass these events onto the global Shepherd object\n const events = ['active', 'cancel', 'complete', 'inactive', 'show', 'start'];\n events.map((event) => {\n ((e) => {\n this.on(e, (opts) => {\n opts = opts || {};\n opts.tour = this;\n Shepherd.trigger(e, opts);\n });\n })(event);\n });\n\n this.modal = new ShepherdModal({\n target: options.modalContainer || document.body,\n props:\n {\n classPrefix: this.classPrefix,\n styles: this.styles\n }\n });\n\n this._setTourID();\n\n return this;\n }\n\n /**\n * Adds a new step to the tour\n * @param {Object|Step} options An object containing step options or a Step instance\n * @return {Step} The newly added step\n */\n addStep(options) {\n let step = options;\n\n if (!(step instanceof Step)) {\n step = new Step(this, step);\n } else {\n step.tour = this;\n }\n\n this.steps.push(step);\n return step;\n }\n\n /**\n * Add multiple steps to the tour\n * @param {Array<object> | Array<Step>} steps The steps to add to the tour\n */\n addSteps(steps) {\n if (Array.isArray(steps)) {\n steps.forEach((step) => {\n this.addStep(step);\n });\n }\n\n return this;\n }\n\n /**\n * Go to the previous step in the tour\n */\n back() {\n const index = this.steps.indexOf(this.currentStep);\n this.show(index - 1, false);\n }\n\n /**\n * Calls _done() triggering the 'cancel' event\n * If `confirmCancel` is true, will show a window.confirm before cancelling\n */\n cancel() {\n if (this.options.confirmCancel) {\n const cancelMessage = this.options.confirmCancelMessage || 'Are you sure you want to stop the tour?';\n const stopTour = window.confirm(cancelMessage);\n if (stopTour) {\n this._done('cancel');\n }\n } else {\n this._done('cancel');\n }\n }\n\n /**\n * Calls _done() triggering the `complete` event\n */\n complete() {\n this._done('complete');\n }\n\n /**\n * Gets the step from a given id\n * @param {Number|String} id The id of the step to retrieve\n * @return {Step} The step corresponding to the `id`\n */\n getById(id) {\n return this.steps.find((step) => {\n return step.id === id;\n });\n }\n\n /**\n * Gets the current step\n * @returns {Step|null}\n */\n getCurrentStep() {\n return this.currentStep;\n }\n\n /**\n * Hide the current step\n */\n hide() {\n const currentStep = this.getCurrentStep();\n\n if (currentStep) {\n return currentStep.hide();\n }\n }\n\n /**\n * Check if the tour is active\n * @return {boolean}\n */\n isActive() {\n return Shepherd.activeTour === this;\n }\n\n /**\n * Go to the next step in the tour\n * If we are at the end, call `complete`\n */\n next() {\n const index = this.steps.indexOf(this.currentStep);\n\n if (index === this.steps.length - 1) {\n this.complete();\n } else {\n this.show(index + 1, true);\n }\n }\n\n /**\n * Removes the step from the tour\n * @param {String} name The id for the step to remove\n */\n removeStep(name) {\n const current = this.getCurrentStep();\n\n // Find the step, destroy it and remove it from this.steps\n this.steps.some((step, i) => {\n if (step.id === name) {\n if (step.isOpen()) {\n step.hide();\n }\n\n step.destroy();\n this.steps.splice(i, 1);\n\n return true;\n }\n });\n\n if (current && current.id === name) {\n this.currentStep = undefined;\n\n // If we have steps left, show the first one, otherwise just cancel the tour\n this.steps.length ? this.show(0) : this.cancel();\n }\n }\n\n /**\n * Show a specific step in the tour\n * @param {Number|String} key The key to look up the step by\n * @param {Boolean} forward True if we are going forward, false if backward\n */\n show(key = 0, forward = true) {\n const step = isString(key) ? this.getById(key) : this.steps[key];\n\n if (step) {\n this._updateStateBeforeShow();\n\n const shouldSkipStep = isFunction(step.options.showOn) && !step.options.showOn();\n\n // If `showOn` returns false, we want to skip the step, otherwise, show the step like normal\n if (shouldSkipStep) {\n this._skipStep(step, forward);\n } else {\n this.trigger('show', {\n step,\n previous: this.currentStep\n });\n\n this.currentStep = step;\n step.show();\n }\n }\n }\n\n /**\n * Start the tour\n */\n start() {\n this.trigger('start');\n\n // Save the focused element before the tour opens\n this.focusedElBeforeOpen = document.activeElement;\n\n this.currentStep = null;\n this._setupActiveTour();\n this.next();\n }\n\n /**\n * Called whenever the tour is cancelled or completed, basically anytime we exit the tour\n * @param {String} event The event name to trigger\n * @private\n */\n _done(event) {\n const index = this.steps.indexOf(this.currentStep);\n if (Array.isArray(this.steps)) {\n this.steps.forEach((step) => step.destroy());\n }\n\n cleanupSteps(this);\n\n this.trigger(event, { index });\n\n Shepherd.activeTour = null;\n this.trigger('inactive', { tour: this });\n\n this.modal.hide();\n\n // Focus the element that was focused before the tour started\n if (isElement(this.focusedElBeforeOpen)) {\n this.focusedElBeforeOpen.focus();\n }\n }\n\n /**\n * Make this tour \"active\"\n * @private\n */\n _setupActiveTour() {\n this.trigger('active', { tour: this });\n\n Shepherd.activeTour = this;\n }\n\n /**\n * Called when `showOn` evaluates to false, to skip the step\n * @param {Step} step The step to skip\n * @param {Boolean} forward True if we are going forward, false if backward\n * @private\n */\n _skipStep(step, forward) {\n const index = this.steps.indexOf(step);\n const nextIndex = forward ? index + 1 : index - 1;\n this.show(nextIndex, forward);\n }\n\n /**\n * Before showing, hide the current step and if the tour is not\n * already active, call `this._setupActiveTour`.\n * @private\n */\n _updateStateBeforeShow() {\n if (this.currentStep) {\n this.currentStep.hide();\n }\n\n if (!this.isActive()) {\n this._setupActiveTour();\n }\n }\n\n /**\n * Sets this.id to `${tourName}--${uuid}`\n * @private\n */\n _setTourID() {\n const tourName = this.options.tourName || 'tour';\n\n this.id = `${tourName}--${uuid()}`;\n }\n}\n\nexport { Shepherd };\n","/**\n * Cleanup the steps and set pointerEvents back to 'auto'\n * @param tour The tour object\n */\nexport function cleanupSteps(tour) {\n if (tour) {\n const { steps } = tour;\n\n steps.forEach((step) => {\n if (step.options && step.options.canClickTarget === false && step.options.attachTo) {\n if (step.target instanceof HTMLElement) {\n step.target.style.pointerEvents = '';\n }\n }\n });\n }\n}\n","import { Step } from './step.js';\nimport { Shepherd, Tour } from './tour.js';\n\nObject.assign(Shepherd, { Tour, Step });\n\nexport default Shepherd;\n"],"names":["isUndefined","value","undefined","Evented","on","event","handler","ctx","once","this","bindings","push","off","i","length","splice","trigger","args","context","apply","autoBind","self","keys","Object","getOwnPropertyNames","constructor","prototype","key","val","bind","isElement","HTMLElement","isFunction","isString","bindAdvance","step","options","advanceOn","selector","console","error","el","isOpen","targetIsEl","currentTarget","matches","tour","next","_setupAdvanceOnHandler","document","querySelector","e","addEventListener","removeEventListener","body","_assertThisInitialized","ReferenceError","addClass","name","split","forEach","cls","trim","classList","add","removeClass","remove","updateClasses","all","indexOf","contains","deferred","defer","fn","flush","pop","_scrollBarSize","extend","out","Array","arguments","slice","obj","hasOwnProperty","call","getScrollBarSize","inner","createElement","style","width","height","outer","position","top","left","pointerEvents","visibility","overflow","appendChild","widthContained","offsetWidth","widthScroll","clientWidth","removeChild","id","uniqueId","zeroPosCache","zeroElement","getBounds","doc","documentElement","ownerDocument","docEl","box","_getActualBoundingClientRect","origin","node","setAttribute","getAttribute","_getOrigin","scrollWidth","right","scrollHeight","bottom","clientTop","clientLeft","clientHeight","boundingRect","getBoundingClientRect","rect","k","frameElement","defaultView","frameRect","err","Abutment","_ref","_this","_this$cache","cache","element","targetPos","getTargetBounds","abutted","side","targetPosSide","getClass","addTargetClasses","target","BOUNDS_FORMAT","Constraint","targetAttachment","constraints","lastSize","_this$lastSize","targetSize","targetHeight","targetWidth","allClasses","constraint","outOfBoundsClass","pinnedClass","addClasses","tAttachment","eAttachment","attachment","changeAttachX","changeAttachY","to","pin","_attachment$split","bounds","tether","scrollParents","pageXOffset","pageYOffset","innerWidth","innerHeight","nodeType","size","pos","getComputedStyle","win","toUpperCase","substr","parseFloat","getBoundingRect","map","p","oobClass","pinned","oob","updateAttachClasses","Shift","shift","shiftTop","shiftLeft","_shift","_ref2","_proto","_len","_key","_this$bindings$event$","MIRROR_LR","center","MIRROR_TB","middle","OFFSET_MAP","addOffset","offsets","attachmentToOffset","offsetToPx","offset","parseTopLeft","_value$split","getOffsetParent","offsetParent","TetherBase","modules","lastCall","lastDuration","pendingTimeout","tick","transformKey","transforms","tethers","now","performance","Math","min","setTimeout","clearTimeout","window","TetherClass","_Evented","subClass","superClass","history","setOptions","module","initialize","create","__proto__","classes","classPrefix","_this2","targetOffset","_this$options","targetModifier","Error","jquery","_addClasses","disable","parents","parent","parentNode","_style","overflowX","overflowY","test","getScrollParents","enabled","enable","_bounds","scrollBottom","borderTopWidth","borderBottomWidth","_out","borderLeftWidth","fitAdj","pow","max","scrollPercentage","scrollTop","clearCache","_cache","getter","_this3","_this4","destroy","_this5","_removeClasses","elementAttach","targetAttach","_this6","_addAttachClasses","flushChanges","_this7","relativeToAttachment","autoToFixedAttachment","elementPos","manualOffset","manualTargetOffset","ret","scrollbarSize","page","viewport","parentElement","optimizations","moveElement","offsetPosition","offsetParentStyle","offsetParentSize","offsetBorder","toLowerCase","scrollLeft","move","unshift","_this8","a","b","diff","same","type","found","point","within","css","transcribe","_same","_pos","yPos","xPos","gpu","devicePixelRatio","round","allowPositionFixed","d","moved","bodyElement","offsetParentIsBody","currentNode","tagName","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","writeCSS","write","_this9","className","Tether","_this10","markers","dot","current_component","ATTACHMENT","normalizePrefix","prefix","charAt","parseAttachTo","attachTo","returnOpts","assign","setupTooltip","tooltip","attachToOpts","attachToOptions","tetherOptions","_makeTooltipInstance","uuid","Date","replace","c","r","random","floor","toString","noop","tar","src","run","blank_object","run_all","fns","is_function","thing","safe_not_equal","append","insert","anchor","insertBefore","detach","svg_element","createElementNS","text","data","createTextNode","space","listen","attr","attribute","removeAttribute","set_attributes","attributes","cssText","set_current_component","component","get_current_component","dirty_components","binding_callbacks","render_callbacks","flush_callbacks","resolved_promise","Promise","resolve","update_scheduled","add_render_callback","seen_callbacks","Set","update","$$","callback","has","fragment","dirty","before_update","after_update","outros","outroing","group_outros","check_outros","transition_in","block","local","delete","transition_out","o","mount_component","on_mount","on_destroy","m","new_on_destroy","filter","destroy_component","detaching","make_dirty","then","init","instance","create_fragment","not_equal","prop_names","parent_component","props","bound","Map","callbacks","ready","hydrate","l","from","childNodes","children","intro","SvelteComponent","$destroy","$on","index","$set","secondary","action","config","buttons","iterations","cancelIcon","label","handleCancelClick","preventDefault","cancel","title","labelId","descriptionId","innerHTML","isArray","arrow","hasCancelIcon","hasTitle","dataStepId","handleKeyDown","levels","updates","to_null_out","accounted_for","$$scope","n","KEY_TAB","KEY_ESC","LEFT_ARROW","RIGHT_ARROW","firstFocusableElement","focusableElements","lastFocusableElement","querySelectorAll","keyCode","shiftKey","activeElement","focus","exitOnEsc","keyboardNavigation","back","polyfill","w","__forceSmoothScrollPolyfill__","userAgent","Element","SCROLL_TIME","original","scroll","scrollTo","scrollBy","elementScroll","scrollElement","scrollIntoView","ROUNDING_TOLERANCE","navigator","RegExp","join","shouldBailOut","smoothScroll","scrollX","scrollY","SyntaxError","behavior","scrollableParent","findScrollableParent","parentRects","clientRects","x","y","firstArg","TypeError","hasScrollableSpace","axis","canOverflow","overflowValue","isScrollable","isScrollableY","isScrollableX","host","currentX","currentY","elapsed","startTime","cos","PI","startX","startY","method","scrollable","requestAnimationFrame","smoothscroll","Step","styles","_setOptions","complete","_updateStepTargetOnHide","getTour","hide","modal","hidden","Boolean","show","beforeShowPromise","_show","updateStepOptions","shepherdElementComponent","_createTooltipContent","ShepherdElement","getElement","_scrollTo","scrollToOptions","scrollToHandler","_getClassOptions","stepOptions","defaultStepOptions","stepClasses","defaultStepOptionsClasses","uniqClasses","tourOptions","when","_setupElements","setupForStep","_styleTargetElementForStep","targetElement","highlightClass","canClickTarget","openingProperties","modalIsVisible","_preventModalOverlayTouch","rafId","closeModalOpening","_cleanupStepEventListeners","positionModalOpening","scrollParent","modalOverlayOpeningPadding","elementRect","scrollRect","_getVisibleHeight","_preventModalBodyTouch","cancelAnimationFrame","passive","useModalOverlay","_getScrollParent","rafLoop","_styleForStep","stopPropagation","Shepherd","Tour","steps","addSteps","opts","ShepherdModal","modalContainer","_setTourID","addStep","currentStep","confirmCancel","cancelMessage","confirmCancelMessage","confirm","_done","getById","find","getCurrentStep","isActive","activeTour","removeStep","current","some","forward","_updateStateBeforeShow","showOn","_skipStep","previous","start","focusedElBeforeOpen","_setupActiveTour","nextIndex","tourName"],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
!function(){"use strict";function o(){var o=window,t=document;if(!("scrollBehavior"in t.documentElement.style&&!0!==o.__forceSmoothScrollPolyfill__)){var l,e=o.HTMLElement||o.Element,r=468,i={scroll:o.scroll||o.scrollTo,scrollBy:o.scrollBy,elementScroll:e.prototype.scroll||n,scrollIntoView:e.prototype.scrollIntoView},s=o.performance&&o.performance.now?o.performance.now.bind(o.performance):Date.now,c=(l=o.navigator.userAgent,new RegExp(["MSIE ","Trident/","Edge/"].join("|")).test(l)?1:0);o.scroll=o.scrollTo=function(){void 0!==arguments[0]&&(!0!==f(arguments[0])?h.call(o,t.body,void 0!==arguments[0].left?~~arguments[0].left:o.scrollX||o.pageXOffset,void 0!==arguments[0].top?~~arguments[0].top:o.scrollY||o.pageYOffset):i.scroll.call(o,void 0!==arguments[0].left?arguments[0].left:"object"!=typeof arguments[0]?arguments[0]:o.scrollX||o.pageXOffset,void 0!==arguments[0].top?arguments[0].top:void 0!==arguments[1]?arguments[1]:o.scrollY||o.pageYOffset))},o.scrollBy=function(){void 0!==arguments[0]&&(f(arguments[0])?i.scrollBy.call(o,void 0!==arguments[0].left?arguments[0].left:"object"!=typeof arguments[0]?arguments[0]:0,void 0!==arguments[0].top?arguments[0].top:void 0!==arguments[1]?arguments[1]:0):h.call(o,t.body,~~arguments[0].left+(o.scrollX||o.pageXOffset),~~arguments[0].top+(o.scrollY||o.pageYOffset)))},e.prototype.scroll=e.prototype.scrollTo=function(){if(void 0!==arguments[0])if(!0!==f(arguments[0])){var o=arguments[0].left,t=arguments[0].top;h.call(this,this,void 0===o?this.scrollLeft:~~o,void 0===t?this.scrollTop:~~t)}else{if("number"==typeof arguments[0]&&void 0===arguments[1])throw new SyntaxError("Value could not be converted");i.elementScroll.call(this,void 0!==arguments[0].left?~~arguments[0].left:"object"!=typeof arguments[0]?~~arguments[0]:this.scrollLeft,void 0!==arguments[0].top?~~arguments[0].top:void 0!==arguments[1]?~~arguments[1]:this.scrollTop)}},e.prototype.scrollBy=function(){void 0!==arguments[0]&&(!0!==f(arguments[0])?this.scroll({left:~~arguments[0].left+this.scrollLeft,top:~~arguments[0].top+this.scrollTop,behavior:arguments[0].behavior}):i.elementScroll.call(this,void 0!==arguments[0].left?~~arguments[0].left+this.scrollLeft:~~arguments[0]+this.scrollLeft,void 0!==arguments[0].top?~~arguments[0].top+this.scrollTop:~~arguments[1]+this.scrollTop))},e.prototype.scrollIntoView=function(){if(!0!==f(arguments[0])){var l=function(o){for(;o!==t.body&&!1===(e=p(l=o,"Y")&&a(l,"Y"),r=p(l,"X")&&a(l,"X"),e||r);)o=o.parentNode||o.host;var l,e,r;return o}(this),e=l.getBoundingClientRect(),r=this.getBoundingClientRect();l!==t.body?(h.call(this,l,l.scrollLeft+r.left-e.left,l.scrollTop+r.top-e.top),"fixed"!==o.getComputedStyle(l).position&&o.scrollBy({left:e.left,top:e.top,behavior:"smooth"})):o.scrollBy({left:r.left,top:r.top,behavior:"smooth"})}else i.scrollIntoView.call(this,void 0===arguments[0]||arguments[0])}}function n(o,t){this.scrollLeft=o,this.scrollTop=t}function f(o){if(null===o||"object"!=typeof o||void 0===o.behavior||"auto"===o.behavior||"instant"===o.behavior)return!0;if("object"==typeof o&&"smooth"===o.behavior)return!1;throw new TypeError("behavior member of ScrollOptions "+o.behavior+" is not a valid value for enumeration ScrollBehavior.")}function p(o,t){return"Y"===t?o.clientHeight+c<o.scrollHeight:"X"===t?o.clientWidth+c<o.scrollWidth:void 0}function a(t,l){var e=o.getComputedStyle(t,null)["overflow"+l];return"auto"===e||"scroll"===e}function d(t){var l,e,i,c,n=(s()-t.startTime)/r;c=n=n>1?1:n,l=.5*(1-Math.cos(Math.PI*c)),e=t.startX+(t.x-t.startX)*l,i=t.startY+(t.y-t.startY)*l,t.method.call(t.scrollable,e,i),e===t.x&&i===t.y||o.requestAnimationFrame(d.bind(o,t))}function h(l,e,r){var c,f,p,a,h=s();l===t.body?(c=o,f=o.scrollX||o.pageXOffset,p=o.scrollY||o.pageYOffset,a=i.scroll):(c=l,f=l.scrollLeft,p=l.scrollTop,a=n),d({scrollable:c,method:a,startTime:h,startX:f,startY:p,x:e,y:r})}}"object"==typeof exports&&"undefined"!=typeof module?module.exports={polyfill:o}:o()}();
|
@@ -0,0 +1,4 @@
|
|
1
|
+
/*! tether 2.0.0 */
|
2
|
+
|
3
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Tether=e()}(this,(function(){"use strict";function t(e,o){return(t=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(e,o)}function e(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function o(t){return"string"==typeof t}function i(t){return void 0===t}function n(t,e){e.split(" ").forEach((function(e){e.trim()&&t.classList.add(e)}))}function s(t,e,o){return void 0===t&&(t=""),i(e)||i(e[t])?o?o+"-"+t:t:!1===e[t]?"":e[t]}function r(t,e){e.split(" ").forEach((function(e){e.trim()&&t.classList.remove(e)}))}function a(t,e,o){o.forEach((function(o){-1===e.indexOf(o)&&t.classList.contains(o)&&r(t,o)})),e.forEach((function(e){t.classList.contains(e)||n(t,e)}))}var h=[];function l(t){h.push(t)}function f(){for(var t;t=h.pop();)t()}var p=null;function d(t){void 0===t&&(t={});var e=[];return Array.prototype.push.apply(e,arguments),e.slice(1).forEach((function(e){if(e)for(var o in e)({}).hasOwnProperty.call(e,o)&&(t[o]=e[o])})),t}function c(){if(p)return p;var t=document.createElement("div");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");d(e.style,{position:"absolute",top:0,left:0,pointerEvents:"none",visibility:"hidden",width:"200px",height:"150px",overflow:"hidden"}),e.appendChild(t),document.body.appendChild(e);var o=t.offsetWidth;e.style.overflow="scroll";var i=t.offsetWidth;o===i&&(i=e.clientWidth),document.body.removeChild(e);var n=o-i;return p={width:n,height:n}}var u,m=(u=0,function(){return++u}),g={},v=null;function b(t,e){var o;e===document?(o=document,e=document.documentElement):o=e.ownerDocument;var n=o.documentElement,s=w(e),r=function(t){var e=v;e&&t.contains(e)||((e=document.createElement("div")).setAttribute("data-tether-id",m()),d(e.style,{top:0,left:0,position:"absolute"}),t.appendChild(e),v=e);var o=e.getAttribute("data-tether-id");i(g[o])&&(g[o]=w(e),l((function(){delete g[o]})));return g[o]}(t);return s.top-=r.top,s.left-=r.left,i(s.width)&&(s.width=document.body.scrollWidth-s.left-s.right),i(s.height)&&(s.height=document.body.scrollHeight-s.top-s.bottom),s.top=s.top-n.clientTop,s.left=s.left-n.clientLeft,s.right=o.body.clientWidth-s.width-s.left,s.bottom=o.body.clientHeight-s.height-s.top,s}function w(t){var e=t.getBoundingClientRect(),o={};for(var i in e)o[i]=e[i];try{if(t.ownerDocument!==document){var n=t.ownerDocument.defaultView.frameElement;if(n){var s=w(n);o.top+=s.top,o.bottom+=s.top,o.left+=s.left,o.right+=s.left}}}catch(t){}return o}var y={position:function(t){var e=this,o=t.top,i=t.left,n=this.cache("element-bounds",(function(){return b(e.element)})),r=n.height,h=n.width,f=this.getTargetBounds(),p=o+r,d=i+h,c=[];o<=f.bottom&&p>=f.top&&["left","right"].forEach((function(t){var e=f[t];e!==i&&e!==d||c.push(t)})),i<=f.right&&d>=f.left&&["top","bottom"].forEach((function(t){var e=f[t];e!==o&&e!==p||c.push(t)}));var u=this.options,m=u.classes,g=u.classPrefix;return this.all.push(s("abutted",m,g)),["left","top","right","bottom"].forEach((function(t){e.all.push(s("abutted",m,g)+"-"+t)})),c.length&&this.add.push(s("abutted",m,g)),c.forEach((function(t){e.add.push(s("abutted",m,g)+"-"+t)})),l((function(){!1!==e.options.addTargetClasses&&a(e.target,e.add,e.all),a(e.element,e.add,e.all)})),!0}},E=["left","top","right","bottom"];var O={position:function(t){var e=this,n=t.top,r=t.left,h=t.targetAttachment;if(!this.options.constraints)return!0;var f=this.cache("element-bounds",(function(){return b(e.bodyElement,e.element)})),p=f.height,c=f.width;if(0===c&&0===p&&!i(this.lastSize)){var u=this.lastSize;c=u.width,p=u.height}var m=this.cache("target-bounds",(function(){return e.getTargetBounds()})),g=m.height,v=m.width,w=this.options,y=w.classes,O=w.classPrefix,x=function(t,e,o){var i=[s("pinned",t,e),s("out-of-bounds",t,e)];return o.forEach((function(t){var e=t.outOfBoundsClass,o=t.pinnedClass;e&&i.push(e),o&&i.push(o)})),i.forEach((function(t){["left","top","right","bottom"].forEach((function(e){i.push(t+"-"+e)}))})),i}(y,O,this.options.constraints),C=[],T=d({},h),P=d({},this.attachment);return this.options.constraints.forEach((function(t){var a,l,f=t.to,d=t.attachment,u=t.pin;if(i(d)&&(d=""),d.indexOf(" ")>=0){var m=d.split(" ");l=m[0],a=m[1]}else a=l=d;var w=function(t,e,o){if(!o)return null;if("scrollParent"===o?o=e.scrollParents[0]:"window"===o&&(o=[pageXOffset,pageYOffset,innerWidth+pageXOffset,innerHeight+pageYOffset]),o===document&&(o=o.documentElement),!i(o.nodeType)){var n=o,s=b(t,o),r=s,a=getComputedStyle(o);if(o=[r.left,r.top,s.width+r.left,s.height+r.top],n.ownerDocument!==document){var h=n.ownerDocument.defaultView;o[0]+=h.pageXOffset,o[1]+=h.pageYOffset,o[2]+=h.pageXOffset,o[3]+=h.pageYOffset}E.forEach((function(t,e){"Top"===(t=t[0].toUpperCase()+t.substr(1))||"Left"===t?o[e]+=parseFloat(a["border"+t+"Width"]):o[e]-=parseFloat(a["border"+t+"Width"])}))}return o}(e.bodyElement,e,f);"target"!==l&&"both"!==l||(n<w[1]&&"top"===T.top&&(n+=g,T.top="bottom"),n+p>w[3]&&"bottom"===T.top&&(n-=g,T.top="top")),"together"===l&&(n=function(t,e,o,i,n,s){return"top"===t.top&&("bottom"===e.top&&s<o[1]?(s+=n,t.top="bottom",s+=i,e.top="top"):"top"===e.top&&s+i>o[3]&&s-(i-n)>=o[1]&&(s-=i-n,t.top="bottom",e.top="bottom")),"bottom"===t.top&&("top"===e.top&&s+i>o[3]?(s-=n,t.top="top",s-=i,e.top="bottom"):"bottom"===e.top&&s<o[1]&&s+(2*i-n)<=o[3]&&(s+=i-n,t.top="top",e.top="top")),"middle"===t.top&&(s+i>o[3]&&"top"===e.top?(s-=i,e.top="bottom"):s<o[1]&&"bottom"===e.top&&(s+=i,e.top="top")),s}(T,P,w,p,g,n)),"target"!==a&&"both"!==a||(r<w[0]&&"left"===T.left&&(r+=v,T.left="right"),r+c>w[2]&&"right"===T.left&&(r-=v,T.left="left")),"together"===a&&(r=function(t,e,o,i,n,s){return s<o[0]&&"left"===t.left?"right"===e.left?(s+=n,t.left="right",s+=i,e.left="left"):"left"===e.left&&(s+=n,t.left="right",s-=i,e.left="right"):s+i>o[2]&&"right"===t.left?"left"===e.left?(s-=n,t.left="left",s-=i,e.left="right"):"right"===e.left&&(s-=n,t.left="left",s+=i,e.left="left"):"center"===t.left&&(s+i>o[2]&&"left"===e.left?(s-=i,e.left="right"):s<o[0]&&"right"===e.left&&(s+=i,e.left="left")),s}(T,P,w,c,v,r)),"element"!==l&&"both"!==l||(n<w[1]&&"bottom"===P.top&&(n+=p,P.top="top"),n+p>w[3]&&"top"===P.top&&(n-=p,P.top="bottom")),"element"!==a&&"both"!==a||(r<w[0]&&("right"===P.left?(r+=c,P.left="left"):"center"===P.left&&(r+=c/2,P.left="left")),r+c>w[2]&&("left"===P.left?(r-=c,P.left="right"):"center"===P.left&&(r-=c/2,P.left="right"))),o(u)?u=u.split(",").map((function(t){return t.trim()})):!0===u&&(u=["top","left","right","bottom"]);var x,A=[],W=[];(r=function(t,e,o,i,n,s){return t<e[0]&&(i.indexOf("left")>=0?(t=e[0],n.push("left")):s.push("left")),t+o>e[2]&&(i.indexOf("right")>=0?(t=e[2]-o,n.push("right")):s.push("right")),t}(r,w,c,u=u||[],A,W),n=function(t,e,o,i,n,s){return t<e[1]&&(i.indexOf("top")>=0?(t=e[1],n.push("top")):s.push("top")),t+o>e[3]&&(i.indexOf("bottom")>=0?(t=e[3]-o,n.push("bottom")):s.push("bottom")),t}(n,w,p,u,A,W),A.length)&&(x=i(e.options.pinnedClass)?s("pinned",y,O):e.options.pinnedClass,C.push(x),A.forEach((function(t){C.push(x+"-"+t)})));!function(t,e,o,n,r){var a;t.length&&(a=i(r)?s("out-of-bounds",o,n):r,e.push(a),t.forEach((function(t){e.push(a+"-"+t)})))}(W,C,y,O,e.options.outOfBoundsClass),(A.indexOf("left")>=0||A.indexOf("right")>=0)&&(P.left=T.left=!1),(A.indexOf("top")>=0||A.indexOf("bottom")>=0)&&(P.top=T.top=!1),T.top===h.top&&T.left===h.left&&P.top===e.attachment.top&&P.left===e.attachment.left||(e.updateAttachClasses(P,T),e.trigger("update",{attachment:P,targetAttachment:T}))})),l((function(){!1!==e.options.addTargetClasses&&a(e.target,C,x),a(e.element,C,x)})),{top:n,left:r}}},x={position:function(t){var e=t.top,i=t.left;if(this.options.shift){var n,s,r=this.options.shift;if("function"==typeof r&&(r=r.call(this,{top:e,left:i})),o(r)){(r=r.split(" "))[1]=r[1]||r[0];var a=r;n=a[0],s=a[1],n=parseFloat(n,10),s=parseFloat(s,10)}else{var h=[r.top,r.left];n=h[0],s=h[1]}return{top:e+=n,left:i+=s}}}},C=function(){function t(){}var e=t.prototype;return e.on=function(t,e,o,n){return void 0===n&&(n=!1),i(this.bindings)&&(this.bindings={}),i(this.bindings[t])&&(this.bindings[t]=[]),this.bindings[t].push({handler:e,ctx:o,once:n}),this},e.once=function(t,e,o){return this.on(t,e,o,!0)},e.off=function(t,e){var o=this;return i(this.bindings)||i(this.bindings[t])||(i(e)?delete this.bindings[t]:this.bindings[t].forEach((function(i,n){i.handler===e&&o.bindings[t].splice(n,1)}))),this},e.trigger=function(t){for(var e=this,o=arguments.length,n=new Array(o>1?o-1:0),s=1;s<o;s++)n[s-1]=arguments[s];return!i(this.bindings)&&this.bindings[t]&&this.bindings[t].forEach((function(o,i){var s=o.ctx,r=o.handler,a=o.once,h=s||e;r.apply(h,n),a&&e.bindings[t].splice(i,1)})),this},t}(),T={center:"center",left:"right",right:"left"},P={middle:"middle",top:"bottom",bottom:"top"},A={top:0,left:0,middle:"50%",center:"50%",bottom:"100%",right:"100%"};function W(){for(var t={top:0,left:0},e=arguments.length,i=new Array(e),n=0;n<e;n++)i[n]=arguments[n];return i.forEach((function(e){var i=e.top,n=e.left;o(i)&&(i=parseFloat(i)),o(n)&&(n=parseFloat(n)),t.top+=i,t.left+=n})),t}function _(t){var e=t.left,o=t.top;return i(A[t.left])||(e=A[t.left]),i(A[t.top])||(o=A[t.top]),{left:e,top:o}}function M(t,e){return o(t.left)&&-1!==t.left.indexOf("%")&&(t.left=parseFloat(t.left)/100*e.width),o(t.top)&&-1!==t.top.indexOf("%")&&(t.top=parseFloat(t.top)/100*e.height),t}function z(t){var e=t.split(" ");return{top:e[0],left:e[1]}}function F(t){return t.offsetParent||document.documentElement}var L={modules:[O,y,x]};var Y,S,X,H,D=function(){if(i(document))return"";for(var t=document.createElement("div"),e=["transform","WebkitTransform","OTransform","MozTransform","msTransform"],o=0;o<e.length;++o){var n=e[o];if(void 0!==t.style[n])return n}}(),k=[],B=function(){k.forEach((function(t){t.position(!1)})),f()};function N(){return performance.now()}Y=null,S=null,X=null,H=function t(){if(!i(S)&&S>16)return S=Math.min(S-16,250),void(X=setTimeout(t,250));!i(Y)&&N()-Y<10||(null!=X&&(clearTimeout(X),X=null),Y=N(),B(),S=N()-Y)},i(window)||i(window.addEventListener)||["resize","scroll","touchmove"].forEach((function(t){window.addEventListener(t,H)}));var R=function(h){var p,u;function m(t){var o;return(o=h.call(this)||this).position=o.position.bind(e(o)),k.push(e(o)),o.history=[],o.setOptions(t,!1),L.modules.forEach((function(t){i(t.initialize)||t.initialize.call(e(o))})),o.position(),o}u=h,(p=m).prototype=Object.create(u.prototype),p.prototype.constructor=p,t(p,u);var g=m.prototype;return g.setOptions=function(t,e){var n=this;void 0===e&&(e=!0);var s={offset:"0 0",targetOffset:"0 0",targetAttachment:"auto auto",classPrefix:"tether",bodyElement:document.body};this.options=d(s,t);var r=this.options,a=r.element,h=r.target,l=r.targetModifier,f=r.bodyElement;if(this.element=a,this.target=h,this.targetModifier=l,"string"==typeof f&&(f=document.querySelector(f)),this.bodyElement=f,"viewport"===this.target?(this.target=document.body,this.targetModifier="visible"):"scroll-handle"===this.target&&(this.target=document.body,this.targetModifier="scroll-handle"),["element","target"].forEach((function(t){if(i(n[t]))throw new Error("Tether Error: Both element and target must be defined");i(n[t].jquery)?o(n[t])&&(n[t]=document.querySelector(n[t])):n[t]=n[t][0]})),this._addClasses(),!this.options.attachment)throw new Error("Tether Error: You must provide an attachment");this.targetAttachment=z(this.options.targetAttachment),this.attachment=z(this.options.attachment),this.offset=z(this.options.offset),this.targetOffset=z(this.options.targetOffset),i(this.scrollParents)||this.disable(),"scroll-handle"===this.targetModifier?this.scrollParents=[this.target]:this.scrollParents=function(t){var e=(getComputedStyle(t)||{}).position,o=[];if("fixed"===e)return[t];for(var n=t;(n=n.parentNode)&&n&&1===n.nodeType;){var s=void 0;try{s=getComputedStyle(n)}catch(t){}if(i(s)||null===s)return o.push(n),o;var r=s,a=r.overflow,h=r.overflowX,l=r.overflowY;/(auto|scroll|overlay)/.test(a+l+h)&&("absolute"!==e||["relative","absolute","fixed"].indexOf(s.position)>=0)&&o.push(n)}return o.push(t.ownerDocument.body),t.ownerDocument!==document&&o.push(t.ownerDocument.defaultView),o}(this.target),!1!==this.options.enabled&&this.enable(e)},g.getTargetBounds=function(){return i(this.targetModifier)?b(this.bodyElement,this.target):"visible"===this.targetModifier?function(t,e){if(e===document.body)return{top:pageYOffset,left:pageXOffset,height:innerHeight,width:innerWidth};var o=b(t,e),i={height:o.height,width:o.width,top:o.top,left:o.left};return i.height=Math.min(i.height,o.height-(pageYOffset-o.top)),i.height=Math.min(i.height,o.height-(o.top+o.height-(pageYOffset+innerHeight))),i.height=Math.min(innerHeight,i.height),i.height-=2,i.width=Math.min(i.width,o.width-(pageXOffset-o.left)),i.width=Math.min(i.width,o.width-(o.left+o.width-(pageXOffset+innerWidth))),i.width=Math.min(innerWidth,i.width),i.width-=2,i.top<pageYOffset&&(i.top=pageYOffset),i.left<pageXOffset&&(i.left=pageXOffset),i}(this.bodyElement,this.target):"scroll-handle"===this.targetModifier?function(t,e){var o,i=e.scrollTop,n=e===document.body;n?(e=document.documentElement,o={left:pageXOffset,top:pageYOffset,height:innerHeight,width:innerWidth}):o=b(t,e);var s=getComputedStyle(e),r=0;(e.scrollWidth>e.clientWidth||[s.overflow,s.overflowX].indexOf("scroll")>=0||!n)&&(r=15);var a=o.height-parseFloat(s.borderTopWidth)-parseFloat(s.borderBottomWidth)-r,h={width:15,height:.975*a*(a/e.scrollHeight),left:o.left+o.width-parseFloat(s.borderLeftWidth)-15},l=0;a<408&&n&&(l=-11e-5*Math.pow(a,2)-.00727*a+22.58),n||(h.height=Math.max(h.height,24));var f=i/(e.scrollHeight-a);return h.top=f*(a-h.height-l)+o.top+parseFloat(s.borderTopWidth),n&&(h.height=Math.max(h.height,24)),h}(this.bodyElement,this.target):void 0},g.clearCache=function(){this._cache={}},g.cache=function(t,e){return i(this._cache)&&(this._cache={}),i(this._cache[t])&&(this._cache[t]=e.call(this)),this._cache[t]},g.enable=function(t){var e=this;void 0===t&&(t=!0);var o=this.options,i=o.classes,r=o.classPrefix;!1!==this.options.addTargetClasses&&n(this.target,s("enabled",i,r)),n(this.element,s("enabled",i,r)),this.enabled=!0,this.scrollParents.forEach((function(t){t!==e.target.ownerDocument&&t.addEventListener("scroll",e.position)})),t&&this.position()},g.disable=function(){var t=this,e=this.options,o=e.classes,n=e.classPrefix;r(this.target,s("enabled",o,n)),r(this.element,s("enabled",o,n)),this.enabled=!1,i(this.scrollParents)||this.scrollParents.forEach((function(e){e&&e.removeEventListener&&e.removeEventListener("scroll",t.position)}))},g.destroy=function(){var t,e=this;this.disable(),this._removeClasses(),k.forEach((function(t,o){t===e&&k.splice(o,1)})),0===k.length&&(t=this.bodyElement,v&&t.removeChild(v),v=null)},g.updateAttachClasses=function(t,e){var o=this;t=t||this.attachment,e=e||this.targetAttachment;var n=this.options,r=n.classes,h=n.classPrefix;!i(this._addAttachClasses)&&this._addAttachClasses.length&&this._addAttachClasses.splice(0,this._addAttachClasses.length),i(this._addAttachClasses)&&(this._addAttachClasses=[]),this.add=this._addAttachClasses,t.top&&this.add.push(s("element-attached",r,h)+"-"+t.top),t.left&&this.add.push(s("element-attached",r,h)+"-"+t.left),e.top&&this.add.push(s("target-attached",r,h)+"-"+e.top),e.left&&this.add.push(s("target-attached",r,h)+"-"+e.left),this.all=[],["left","top","bottom","right","middle","center"].forEach((function(t){o.all.push(s("element-attached",r,h)+"-"+t),o.all.push(s("target-attached",r,h)+"-"+t)})),l((function(){i(o._addAttachClasses)||(a(o.element,o._addAttachClasses,o.all),!1!==o.options.addTargetClasses&&a(o.target,o._addAttachClasses,o.all),delete o._addAttachClasses)}))},g.position=function(t){var e=this;if(void 0===t&&(t=!0),this.enabled){this.clearCache();var o=function(t,e){var o=t.left,i=t.top;return"auto"===o&&(o=T[e.left]),"auto"===i&&(i=P[e.top]),{left:o,top:i}}(this.targetAttachment,this.attachment);this.updateAttachClasses(this.attachment,o);var n=this.cache("element-bounds",(function(){return b(e.bodyElement,e.element)})),s=n.width,r=n.height;if(0!==s||0!==r||i(this.lastSize))this.lastSize={width:s,height:r};else{var a=this.lastSize;s=a.width,r=a.height}var h=this.cache("target-bounds",(function(){return e.getTargetBounds()})),l=h,p=M(_(this.attachment),{width:s,height:r}),d=M(_(o),l),u=M(this.offset,{width:s,height:r}),m=M(this.targetOffset,l);p=W(p,u),d=W(d,m);for(var g=h.left+d.left-p.left,v=h.top+d.top-p.top,w=0;w<L.modules.length;++w){var y=L.modules[w].position.call(this,{left:g,top:v,targetAttachment:o,targetPos:h,elementPos:n,offset:p,targetOffset:d,manualOffset:u,manualTargetOffset:m,scrollbarSize:E,attachment:this.attachment});if(!1===y)return!1;i(y)||"object"!=typeof y||(v=y.top,g=y.left)}var E,O={page:{top:v,left:g},viewport:{top:v-pageYOffset,bottom:pageYOffset-v-r+innerHeight,left:g-pageXOffset,right:pageXOffset-g-s+innerWidth}},x=this.target.ownerDocument,C=x.defaultView;if(C.innerHeight>x.documentElement.clientHeight&&(E=this.cache("scrollbar-size",c),O.viewport.bottom-=E.height),C.innerWidth>x.documentElement.clientWidth&&(E=this.cache("scrollbar-size",c),O.viewport.right-=E.width),-1!==["","static"].indexOf(x.body.style.position)&&-1!==["","static"].indexOf(x.body.parentElement.style.position)||(O.page.bottom=x.body.scrollHeight-v-r,O.page.right=x.body.scrollWidth-g-s),!i(this.options.optimizations)&&!1!==this.options.optimizations.moveElement&&i(this.targetModifier)){var A=this.cache("target-offsetparent",(function(){return F(e.target)})),z=this.cache("target-offsetparent-bounds",(function(){return b(e.bodyElement,A)})),Y=getComputedStyle(A),S=z,X={};if(["Top","Left","Bottom","Right"].forEach((function(t){X[t.toLowerCase()]=parseFloat(Y["border"+t+"Width"])})),z.right=x.body.scrollWidth-z.left-S.width+X.right,z.bottom=x.body.scrollHeight-z.top-S.height+X.bottom,O.page.top>=z.top+X.top&&O.page.bottom>=z.bottom&&O.page.left>=z.left+X.left&&O.page.right>=z.right){var H=A.scrollLeft,D=A.scrollTop;O.offset={top:O.page.top-z.top+D-X.top,left:O.page.left-z.left+H-X.left}}}return this.move(O),this.history.unshift(O),this.history.length>3&&this.history.pop(),t&&f(),!0}},g.move=function(t){var e=this;if(!i(this.element.parentNode)){var o,n,s,r={};for(var a in t)for(var h in r[a]={},t[a]){for(var f=!1,p=0;p<this.history.length;++p){var c=this.history[p];if(!(i(c[a])||(o=c[a][h],n=t[a][h],s=void 0,void 0===s&&(s=1),o+s>=n&&n>=o-s))){f=!0;break}}f||(r[a][h]=!0)}var u={top:"",left:"",right:"",bottom:""},m=function(t,o){var n,s;!1!==(!i(e.options.optimizations)?e.options.optimizations.gpu:null)?(t.top?(u.top=0,n=o.top):(u.bottom=0,n=-o.bottom),t.left?(u.left=0,s=o.left):(u.right=0,s=-o.right),"number"==typeof window.devicePixelRatio&&devicePixelRatio%1==0&&(s=Math.round(s*devicePixelRatio)/devicePixelRatio,n=Math.round(n*devicePixelRatio)/devicePixelRatio),u[D]="translateX("+s+"px) translateY("+n+"px)","msTransform"!==D&&(u[D]+=" translateZ(0)")):(t.top?u.top=o.top+"px":u.bottom=o.bottom+"px",t.left?u.left=o.left+"px":u.right=o.right+"px")},g=!0;!i(this.options.optimizations)&&!1===this.options.optimizations.allowPositionFixed&&(g=!1);var v,b,w=!1;if((r.page.top||r.page.bottom)&&(r.page.left||r.page.right))u.position="absolute",m(r.page,t.page);else if(g&&(r.viewport.top||r.viewport.bottom)&&(r.viewport.left||r.viewport.right))u.position="fixed",m(r.viewport,t.viewport);else if(!i(r.offset)&&r.offset.top&&r.offset.left){u.position="absolute";var y=this.cache("target-offsetparent",(function(){return F(e.target)}));F(this.element)!==y&&l((function(){e.element.parentNode.removeChild(e.element),y.appendChild(e.element)})),m(r.offset,t.offset),w=!0}else u.position="absolute",m({top:!0,left:!0},t.page);if(!w)if(this.options.bodyElement)this.element.parentNode!==this.options.bodyElement&&this.options.bodyElement.appendChild(this.element);else{for(var E=!0,O=this.element.parentNode;O&&1===O.nodeType&&"BODY"!==O.tagName&&(b=void 0,((b=(v=O).ownerDocument).fullscreenElement||b.webkitFullscreenElement||b.mozFullScreenElement||b.msFullscreenElement)!==v);){if("static"!==getComputedStyle(O).position){E=!1;break}O=O.parentNode}E||(this.element.parentNode.removeChild(this.element),this.element.ownerDocument.body.appendChild(this.element))}var x={},C=!1;for(var T in u){var P=u[T];this.element.style[T]!==P&&(C=!0,x[T]=P)}C&&l((function(){d(e.element.style,x),e.trigger("repositioned")}))}},g._addClasses=function(){var t=this.options,e=t.classes,o=t.classPrefix;n(this.element,s("element",e,o)),!1!==this.options.addTargetClasses&&n(this.target,s("target",e,o))},g._removeClasses=function(){var t=this,e=this.options,o=e.classes,i=e.classPrefix;r(this.element,s("element",o,i)),!1!==this.options.addTargetClasses&&r(this.target,s("target",o,i)),this.all.forEach((function(e){t.element.classList.remove(e),t.target.classList.remove(e)}))},m}(C);R.modules=[],L.position=B;var j=d(R,L);return j.modules.push({initialize:function(){var t=this,e=this.options,o=e.classes,i=e.classPrefix;this.markers={},["target","element"].forEach((function(e){var n=document.createElement("div");n.className=s(e+"-marker",o,i);var r=document.createElement("div");r.className=s("marker-dot",o,i),n.appendChild(r),t[e].appendChild(n),t.markers[e]={dot:r,el:n}}))},position:function(t){var e={element:t.manualOffset,target:t.manualTargetOffset};for(var i in e){var n=e[i];for(var s in n){var r,a=n[s];(!o(a)||-1===a.indexOf("%")&&-1===a.indexOf("px"))&&(a+="px"),this.markers[i]&&(null==(r=this.markers[i].dot)?void 0:r.style[s])!==a&&(this.markers[i].dot.style[s]=a)}}return!0}}),j}));
|
4
|
+
//# sourceMappingURL=tether.min.js.map
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: abraham
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.6.
|
4
|
+
version: 2.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan Abbett
|
@@ -112,6 +112,11 @@ files:
|
|
112
112
|
- lib/generators/abraham/templates/initializer.rb
|
113
113
|
- lib/generators/abraham/templates/migration.rb
|
114
114
|
- lib/tasks/abraham_tasks.rake
|
115
|
+
- vendor/assets/javascripts/js.cookie.js
|
116
|
+
- vendor/assets/javascripts/shepherd.min.js
|
117
|
+
- vendor/assets/javascripts/shepherd.min.js.map
|
118
|
+
- vendor/assets/javascripts/smoothscroll.min.js
|
119
|
+
- vendor/assets/javascripts/tether.min.js
|
115
120
|
homepage: https://github.com/actmd/abraham
|
116
121
|
licenses:
|
117
122
|
- MIT
|