abraham 2.6.0 → 2.6.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3928683d3a3d69dc8a8d252bf34a4093527d958f66e992120895d9287f329aa2
4
- data.tar.gz: ec22961e9019b4329fce70ae9db31b43cc5ae284c6255d3db3beacecba74fa6e
3
+ metadata.gz: 1b7258cdcacc3a3e5eeccf4770fa1bc09b5087d222cdabd15e1037ff8c64befa
4
+ data.tar.gz: f20bbd001591ca12351817dfee2e39741bbc2ec3ab8045642ebaeecd4c307814
5
5
  SHA512:
6
- metadata.gz: 0b9236210c526f1ae9874b13892bf68da1099058c503a065af63b65f2ac61b1af03b69c391725ef227dc3c105c434d68d430e8e9c4e9ffd19654c2e774a786e9
7
- data.tar.gz: 12a8fd782dd8d2b0c8414fd7fbff006106ceb48b44e8450458c2a808ccf4f5987b498fdc8420e4ca699e9cf6c0d1dc4e3ea90451866bd342e0099c972c74b62d
6
+ metadata.gz: 4c4fe9743384c458f91a9a68e3ddc0e3eadced8d9bb75b0ba4154194f1384dba89d96e5af80e6d054118936c18cf7e166c26c9c2814a1818b9acc5617575d171
7
+ data.tar.gz: b03369da9b940e7795e0c9ddf9d742b95dd144b5dc23cc40b72863b9b0f9bd7522de461d12e4660d57b0bed7208f8acf220280d15c0ac681e608e2b223033ea6
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Abraham
4
- VERSION = "2.6.0"
4
+ VERSION = "2.6.1"
5
5
  end
@@ -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, '&#34;')\n .replace(/'/g, '&#39;');\n str += \" \" + name + \"=\" + JSON.stringify(escaped);\n });\n return str;\n}\nconst escaped = {\n '\"': '&quot;',\n \"'\": '&#39;',\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;'\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\">&times;</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.0
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