shepherdjs_rails 1.8.1 → 2.0.0.pre.beta.35
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +10 -6
- data/lib/shepherdjs_rails/version.rb +1 -1
- data/vendor/assets/javascripts/shepherd.js +2550 -550
- data/vendor/assets/javascripts/shepherd.js.map +1 -0
- data/vendor/assets/javascripts/shepherd.min.js +6 -0
- data/vendor/assets/javascripts/shepherd.min.js.map +1 -0
- data/vendor/assets/stylesheets/shepherd-theme-dark.css +146 -222
- data/vendor/assets/stylesheets/shepherd-theme-default.css +146 -222
- data/vendor/assets/stylesheets/shepherd-theme-square-dark.css +146 -224
- data/vendor/assets/stylesheets/shepherd-theme-square.css +146 -224
- metadata +7 -9
- data/vendor/assets/javascripts/tether.js +0 -1443
- data/vendor/assets/stylesheets/shepherd-theme-arrows-fix.css +0 -5
- data/vendor/assets/stylesheets/shepherd-theme-arrows-plain-buttons.css +0 -215
- data/vendor/assets/stylesheets/shepherd-theme-arrows.css +0 -229
- data/vendor/assets/stylesheets/shepherd.css +0 -9
@@ -1,747 +1,2747 @@
|
|
1
|
-
|
1
|
+
/*!
|
2
|
+
* /*! shepherd.js 2.0.0-beta.35 * /
|
3
|
+
*
|
4
|
+
*/
|
5
|
+
(function webpackUniversalModuleDefinition(root, factory) {
|
6
|
+
if(typeof exports === 'object' && typeof module === 'object')
|
7
|
+
module.exports = factory();
|
8
|
+
else if(typeof define === 'function' && define.amd)
|
9
|
+
define([], factory);
|
10
|
+
else if(typeof exports === 'object')
|
11
|
+
exports["Shepherd"] = factory();
|
12
|
+
else
|
13
|
+
root["Shepherd"] = factory();
|
14
|
+
})(this, function() {
|
15
|
+
return /******/ (function(modules) { // webpackBootstrap
|
16
|
+
/******/ // The module cache
|
17
|
+
/******/ var installedModules = {};
|
18
|
+
/******/
|
19
|
+
/******/ // The require function
|
20
|
+
/******/ function __webpack_require__(moduleId) {
|
21
|
+
/******/
|
22
|
+
/******/ // Check if module is in cache
|
23
|
+
/******/ if(installedModules[moduleId]) {
|
24
|
+
/******/ return installedModules[moduleId].exports;
|
25
|
+
/******/ }
|
26
|
+
/******/ // Create a new module (and put it into the cache)
|
27
|
+
/******/ var module = installedModules[moduleId] = {
|
28
|
+
/******/ i: moduleId,
|
29
|
+
/******/ l: false,
|
30
|
+
/******/ exports: {}
|
31
|
+
/******/ };
|
32
|
+
/******/
|
33
|
+
/******/ // Execute the module function
|
34
|
+
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
35
|
+
/******/
|
36
|
+
/******/ // Flag the module as loaded
|
37
|
+
/******/ module.l = true;
|
38
|
+
/******/
|
39
|
+
/******/ // Return the exports of the module
|
40
|
+
/******/ return module.exports;
|
41
|
+
/******/ }
|
42
|
+
/******/
|
43
|
+
/******/
|
44
|
+
/******/ // expose the modules object (__webpack_modules__)
|
45
|
+
/******/ __webpack_require__.m = modules;
|
46
|
+
/******/
|
47
|
+
/******/ // expose the module cache
|
48
|
+
/******/ __webpack_require__.c = installedModules;
|
49
|
+
/******/
|
50
|
+
/******/ // define getter function for harmony exports
|
51
|
+
/******/ __webpack_require__.d = function(exports, name, getter) {
|
52
|
+
/******/ if(!__webpack_require__.o(exports, name)) {
|
53
|
+
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
|
54
|
+
/******/ }
|
55
|
+
/******/ };
|
56
|
+
/******/
|
57
|
+
/******/ // define __esModule on exports
|
58
|
+
/******/ __webpack_require__.r = function(exports) {
|
59
|
+
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
60
|
+
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
61
|
+
/******/ }
|
62
|
+
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
63
|
+
/******/ };
|
64
|
+
/******/
|
65
|
+
/******/ // create a fake namespace object
|
66
|
+
/******/ // mode & 1: value is a module id, require it
|
67
|
+
/******/ // mode & 2: merge all properties of value into the ns
|
68
|
+
/******/ // mode & 4: return value when already ns object
|
69
|
+
/******/ // mode & 8|1: behave like require
|
70
|
+
/******/ __webpack_require__.t = function(value, mode) {
|
71
|
+
/******/ if(mode & 1) value = __webpack_require__(value);
|
72
|
+
/******/ if(mode & 8) return value;
|
73
|
+
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
|
74
|
+
/******/ var ns = Object.create(null);
|
75
|
+
/******/ __webpack_require__.r(ns);
|
76
|
+
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
|
77
|
+
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
|
78
|
+
/******/ return ns;
|
79
|
+
/******/ };
|
80
|
+
/******/
|
81
|
+
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
82
|
+
/******/ __webpack_require__.n = function(module) {
|
83
|
+
/******/ var getter = module && module.__esModule ?
|
84
|
+
/******/ function getDefault() { return module['default']; } :
|
85
|
+
/******/ function getModuleExports() { return module; };
|
86
|
+
/******/ __webpack_require__.d(getter, 'a', getter);
|
87
|
+
/******/ return getter;
|
88
|
+
/******/ };
|
89
|
+
/******/
|
90
|
+
/******/ // Object.prototype.hasOwnProperty.call
|
91
|
+
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
92
|
+
/******/
|
93
|
+
/******/ // __webpack_public_path__
|
94
|
+
/******/ __webpack_require__.p = "";
|
95
|
+
/******/
|
96
|
+
/******/
|
97
|
+
/******/ // Load entry module and return exports
|
98
|
+
/******/ return __webpack_require__(__webpack_require__.s = 14);
|
99
|
+
/******/ })
|
100
|
+
/************************************************************************/
|
101
|
+
/******/ ([
|
102
|
+
/* 0 */
|
103
|
+
/***/ (function(module, exports) {
|
104
|
+
|
105
|
+
/**
|
106
|
+
* Checks if `value` is `undefined`.
|
107
|
+
*
|
108
|
+
* @static
|
109
|
+
* @since 0.1.0
|
110
|
+
* @memberOf _
|
111
|
+
* @category Lang
|
112
|
+
* @param {*} value The value to check.
|
113
|
+
* @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.
|
114
|
+
* @example
|
115
|
+
*
|
116
|
+
* _.isUndefined(void 0);
|
117
|
+
* // => true
|
118
|
+
*
|
119
|
+
* _.isUndefined(null);
|
120
|
+
* // => false
|
121
|
+
*/
|
122
|
+
function isUndefined(value) {
|
123
|
+
return value === undefined;
|
124
|
+
}
|
125
|
+
|
126
|
+
module.exports = isUndefined;
|
127
|
+
|
128
|
+
|
129
|
+
/***/ }),
|
130
|
+
/* 1 */
|
131
|
+
/***/ (function(module, exports) {
|
132
|
+
|
133
|
+
/**
|
134
|
+
* Checks if `value` is object-like. A value is object-like if it's not `null`
|
135
|
+
* and has a `typeof` result of "object".
|
136
|
+
*
|
137
|
+
* @static
|
138
|
+
* @memberOf _
|
139
|
+
* @since 4.0.0
|
140
|
+
* @category Lang
|
141
|
+
* @param {*} value The value to check.
|
142
|
+
* @returns {boolean} Returns `true` if `value` is object-like, else `false`.
|
143
|
+
* @example
|
144
|
+
*
|
145
|
+
* _.isObjectLike({});
|
146
|
+
* // => true
|
147
|
+
*
|
148
|
+
* _.isObjectLike([1, 2, 3]);
|
149
|
+
* // => true
|
150
|
+
*
|
151
|
+
* _.isObjectLike(_.noop);
|
152
|
+
* // => false
|
153
|
+
*
|
154
|
+
* _.isObjectLike(null);
|
155
|
+
* // => false
|
156
|
+
*/
|
157
|
+
function isObjectLike(value) {
|
158
|
+
return value != null && typeof value == 'object';
|
159
|
+
}
|
160
|
+
|
161
|
+
module.exports = isObjectLike;
|
162
|
+
|
163
|
+
|
164
|
+
/***/ }),
|
165
|
+
/* 2 */
|
166
|
+
/***/ (function(module, exports, __webpack_require__) {
|
167
|
+
|
168
|
+
var baseGetTag = __webpack_require__(3),
|
169
|
+
isArray = __webpack_require__(8),
|
170
|
+
isObjectLike = __webpack_require__(1);
|
171
|
+
|
172
|
+
/** `Object#toString` result references. */
|
173
|
+
var stringTag = '[object String]';
|
174
|
+
|
175
|
+
/**
|
176
|
+
* Checks if `value` is classified as a `String` primitive or object.
|
177
|
+
*
|
178
|
+
* @static
|
179
|
+
* @since 0.1.0
|
180
|
+
* @memberOf _
|
181
|
+
* @category Lang
|
182
|
+
* @param {*} value The value to check.
|
183
|
+
* @returns {boolean} Returns `true` if `value` is a string, else `false`.
|
184
|
+
* @example
|
185
|
+
*
|
186
|
+
* _.isString('abc');
|
187
|
+
* // => true
|
188
|
+
*
|
189
|
+
* _.isString(1);
|
190
|
+
* // => false
|
191
|
+
*/
|
192
|
+
function isString(value) {
|
193
|
+
return typeof value == 'string' ||
|
194
|
+
(!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);
|
195
|
+
}
|
196
|
+
|
197
|
+
module.exports = isString;
|
198
|
+
|
199
|
+
|
200
|
+
/***/ }),
|
201
|
+
/* 3 */
|
202
|
+
/***/ (function(module, exports) {
|
203
|
+
|
204
|
+
/** Used for built-in method references. */
|
205
|
+
var objectProto = Object.prototype;
|
206
|
+
|
207
|
+
/**
|
208
|
+
* Used to resolve the
|
209
|
+
* [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
|
210
|
+
* of values.
|
211
|
+
*/
|
212
|
+
var nativeObjectToString = objectProto.toString;
|
213
|
+
|
214
|
+
/**
|
215
|
+
* Converts `value` to a string using `Object.prototype.toString`.
|
216
|
+
*
|
217
|
+
* @private
|
218
|
+
* @param {*} value The value to convert.
|
219
|
+
* @returns {string} Returns the converted string.
|
220
|
+
*/
|
221
|
+
function objectToString(value) {
|
222
|
+
return nativeObjectToString.call(value);
|
223
|
+
}
|
224
|
+
|
225
|
+
module.exports = objectToString;
|
226
|
+
|
227
|
+
|
228
|
+
/***/ }),
|
229
|
+
/* 4 */
|
230
|
+
/***/ (function(module, exports, __webpack_require__) {
|
231
|
+
|
232
|
+
"use strict";
|
233
|
+
|
234
|
+
|
235
|
+
Object.defineProperty(exports, "__esModule", {
|
236
|
+
value: true
|
237
|
+
});
|
238
|
+
exports.Evented = undefined;
|
239
|
+
|
240
|
+
var _isUndefined2 = __webpack_require__(0);
|
241
|
+
|
242
|
+
var _isUndefined3 = _interopRequireDefault(_isUndefined2);
|
243
|
+
|
244
|
+
var _drop2 = __webpack_require__(15);
|
245
|
+
|
246
|
+
var _drop3 = _interopRequireDefault(_drop2);
|
247
|
+
|
248
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
249
|
+
|
250
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
251
|
+
|
252
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
253
|
+
|
254
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
255
|
+
|
256
|
+
var Evented =
|
257
|
+
/*#__PURE__*/
|
258
|
+
exports.Evented = function () {
|
259
|
+
function Evented() {
|
260
|
+
_classCallCheck(this, Evented);
|
261
|
+
}
|
262
|
+
|
263
|
+
_createClass(Evented, [{
|
264
|
+
key: "on",
|
265
|
+
value: function on(event, handler, ctx) {
|
266
|
+
var once = arguments.length <= 3 || arguments[3] === undefined ? false : arguments[3];
|
267
|
+
|
268
|
+
if ((0, _isUndefined3.default)(this.bindings)) {
|
269
|
+
this.bindings = {};
|
270
|
+
}
|
271
|
+
|
272
|
+
if ((0, _isUndefined3.default)(this.bindings[event])) {
|
273
|
+
this.bindings[event] = [];
|
274
|
+
}
|
275
|
+
|
276
|
+
this.bindings[event].push({
|
277
|
+
handler: handler,
|
278
|
+
ctx: ctx,
|
279
|
+
once: once
|
280
|
+
});
|
281
|
+
}
|
282
|
+
}, {
|
283
|
+
key: "once",
|
284
|
+
value: function once(event, handler, ctx) {
|
285
|
+
this.on(event, handler, ctx, true);
|
286
|
+
}
|
287
|
+
}, {
|
288
|
+
key: "off",
|
289
|
+
value: function off(event, handler) {
|
290
|
+
var _this = this;
|
291
|
+
|
292
|
+
if ((0, _isUndefined3.default)(this.bindings) || (0, _isUndefined3.default)(this.bindings[event])) {
|
293
|
+
return false;
|
294
|
+
}
|
295
|
+
|
296
|
+
if ((0, _isUndefined3.default)(handler)) {
|
297
|
+
delete this.bindings[event];
|
298
|
+
} else {
|
299
|
+
this.bindings[event].forEach(function (binding, index) {
|
300
|
+
if (binding.handler === handler) {
|
301
|
+
_this.bindings[event].splice(index, 1);
|
302
|
+
}
|
303
|
+
});
|
304
|
+
}
|
305
|
+
}
|
306
|
+
}, {
|
307
|
+
key: "trigger",
|
308
|
+
value: function trigger(event) {
|
309
|
+
var _this2 = this;
|
310
|
+
|
311
|
+
if (!(0, _isUndefined3.default)(this.bindings) && this.bindings[event]) {
|
312
|
+
var args = (0, _drop3.default)(arguments);
|
313
|
+
this.bindings[event].forEach(function (binding, index) {
|
314
|
+
var ctx = binding.ctx,
|
315
|
+
handler = binding.handler,
|
316
|
+
once = binding.once;
|
317
|
+
var context = ctx || _this2;
|
318
|
+
handler.apply(context, args);
|
319
|
+
|
320
|
+
if (once) {
|
321
|
+
_this2.bindings[event].splice(index, 1);
|
322
|
+
}
|
323
|
+
});
|
324
|
+
}
|
325
|
+
}
|
326
|
+
}]);
|
327
|
+
|
328
|
+
return Evented;
|
329
|
+
}();
|
330
|
+
|
331
|
+
/***/ }),
|
332
|
+
/* 5 */
|
333
|
+
/***/ (function(module, exports, __webpack_require__) {
|
334
|
+
|
335
|
+
var baseGetTag = __webpack_require__(3),
|
336
|
+
isObject = __webpack_require__(18);
|
337
|
+
|
338
|
+
/** `Object#toString` result references. */
|
339
|
+
var asyncTag = '[object AsyncFunction]',
|
340
|
+
funcTag = '[object Function]',
|
341
|
+
genTag = '[object GeneratorFunction]',
|
342
|
+
proxyTag = '[object Proxy]';
|
343
|
+
|
344
|
+
/**
|
345
|
+
* Checks if `value` is classified as a `Function` object.
|
346
|
+
*
|
347
|
+
* @static
|
348
|
+
* @memberOf _
|
349
|
+
* @since 0.1.0
|
350
|
+
* @category Lang
|
351
|
+
* @param {*} value The value to check.
|
352
|
+
* @returns {boolean} Returns `true` if `value` is a function, else `false`.
|
353
|
+
* @example
|
354
|
+
*
|
355
|
+
* _.isFunction(_);
|
356
|
+
* // => true
|
357
|
+
*
|
358
|
+
* _.isFunction(/abc/);
|
359
|
+
* // => false
|
360
|
+
*/
|
361
|
+
function isFunction(value) {
|
362
|
+
if (!isObject(value)) {
|
363
|
+
return false;
|
364
|
+
}
|
365
|
+
// The use of `Object#toString` avoids issues with the `typeof` operator
|
366
|
+
// in Safari 9 which returns 'object' for typed arrays and other constructors.
|
367
|
+
var tag = baseGetTag(value);
|
368
|
+
return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
|
369
|
+
}
|
370
|
+
|
371
|
+
module.exports = isFunction;
|
372
|
+
|
373
|
+
|
374
|
+
/***/ }),
|
375
|
+
/* 6 */
|
376
|
+
/***/ (function(module, exports) {
|
377
|
+
|
378
|
+
/**
|
379
|
+
* Creates a unary function that invokes `func` with its argument transformed.
|
380
|
+
*
|
381
|
+
* @private
|
382
|
+
* @param {Function} func The function to wrap.
|
383
|
+
* @param {Function} transform The argument transform.
|
384
|
+
* @returns {Function} Returns the new function.
|
385
|
+
*/
|
386
|
+
function overArg(func, transform) {
|
387
|
+
return function(arg) {
|
388
|
+
return func(transform(arg));
|
389
|
+
};
|
390
|
+
}
|
391
|
+
|
392
|
+
module.exports = overArg;
|
393
|
+
|
394
|
+
|
395
|
+
/***/ }),
|
396
|
+
/* 7 */
|
397
|
+
/***/ (function(module, exports, __webpack_require__) {
|
398
|
+
|
399
|
+
"use strict";
|
400
|
+
|
401
|
+
|
402
|
+
Object.defineProperty(exports, "__esModule", {
|
403
|
+
value: true
|
404
|
+
});
|
405
|
+
exports.Step = undefined;
|
406
|
+
|
407
|
+
var _isUndefined2 = __webpack_require__(0);
|
408
|
+
|
409
|
+
var _isUndefined3 = _interopRequireDefault(_isUndefined2);
|
410
|
+
|
411
|
+
var _isString2 = __webpack_require__(2);
|
412
|
+
|
413
|
+
var _isString3 = _interopRequireDefault(_isString2);
|
414
|
+
|
415
|
+
var _isFunction2 = __webpack_require__(5);
|
416
|
+
|
417
|
+
var _isFunction3 = _interopRequireDefault(_isFunction2);
|
418
|
+
|
419
|
+
var _isEmpty2 = __webpack_require__(9);
|
420
|
+
|
421
|
+
var _isEmpty3 = _interopRequireDefault(_isEmpty2);
|
422
|
+
|
423
|
+
var _isElement2 = __webpack_require__(27);
|
424
|
+
|
425
|
+
var _isElement3 = _interopRequireDefault(_isElement2);
|
426
|
+
|
427
|
+
var _forOwn2 = __webpack_require__(10);
|
428
|
+
|
429
|
+
var _forOwn3 = _interopRequireDefault(_forOwn2);
|
430
|
+
|
431
|
+
var _evented = __webpack_require__(4);
|
432
|
+
|
433
|
+
__webpack_require__(35);
|
434
|
+
|
435
|
+
var _bind = __webpack_require__(11);
|
436
|
+
|
437
|
+
var _utils = __webpack_require__(12);
|
438
|
+
|
439
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
440
|
+
|
441
|
+
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
442
|
+
|
443
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
444
|
+
|
445
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
446
|
+
|
447
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
448
|
+
|
449
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
450
|
+
|
451
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
452
|
+
|
453
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
454
|
+
|
455
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
456
|
+
|
457
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
458
|
+
|
459
|
+
/**
|
460
|
+
* Creates incremented ID for each newly created step
|
461
|
+
*
|
462
|
+
* @private
|
463
|
+
* @return {Number} The unique id for the step
|
464
|
+
*/
|
465
|
+
var uniqueId = function () {
|
466
|
+
var id = 0;
|
467
|
+
return function () {
|
468
|
+
return ++id;
|
469
|
+
};
|
470
|
+
}();
|
471
|
+
/**
|
472
|
+
* Class representing steps to be added to a tour
|
473
|
+
* @extends {Evented}
|
474
|
+
*/
|
475
|
+
|
476
|
+
|
477
|
+
var Step =
|
478
|
+
/*#__PURE__*/
|
479
|
+
exports.Step = function (_Evented) {
|
480
|
+
_inherits(Step, _Evented);
|
481
|
+
|
482
|
+
/**
|
483
|
+
* Create a step
|
484
|
+
* @param {Tour} tour The tour for the step
|
485
|
+
* @param {Object} options The options for the step
|
486
|
+
* @param {Object|string} options.attachTo What element the step should be attached to on the page.
|
487
|
+
* It can either be a string of the form "element on", or an object with those properties.
|
488
|
+
* For example: ".some #element left", or {element: '.some #element', on: 'left'}.
|
489
|
+
* If you use the object syntax, element can also be a DOM element. If you don’t specify an attachTo the
|
490
|
+
* element will appear in the middle of the screen.
|
491
|
+
* @param {HTMLElement|string} options.attachTo.element
|
492
|
+
* @param {string} options.attachTo.on
|
493
|
+
* @param {Object|string} options.advanceOn An action on the page which should advance shepherd to the next step.
|
494
|
+
* It can be of the form `"selector event"`, or an object with those properties.
|
495
|
+
* For example: `".some-element click"`, or `{selector: '.some-element', event: 'click'}`.
|
496
|
+
* It doesn’t have to be an event inside the tour, it can be any event fired on any element on the page.
|
497
|
+
* You can also always manually advance the Tour by calling `myTour.next()`.
|
498
|
+
* @param {function} options.beforeShowPromise A function that returns a promise.
|
499
|
+
* When the promise resolves, the rest of the `show` code for the step will execute.
|
500
|
+
* @param {Object[]} options.buttons An array of buttons to add to the step. These will be rendered in a
|
501
|
+
* footer below the main body text.
|
502
|
+
* @param {function} options.buttons.button.action A function executed when the button is clicked on
|
503
|
+
* @param {string} options.buttons.button.classes Extra classes to apply to the `<a>`
|
504
|
+
* @param {Object} options.buttons.button.events A hash of events to bind onto the button, for example
|
505
|
+
* `{'mouseover': function(){}}`. Adding a `click` event to events when you already have an `action` specified is not supported.
|
506
|
+
* You can use events to skip steps or navigate to specific steps, with something like:
|
507
|
+
* ```js
|
508
|
+
* events: {
|
509
|
+
* click: function() {
|
510
|
+
* return Shepherd.activeTour.show('some_step_name');
|
511
|
+
* }
|
512
|
+
* }
|
513
|
+
* ```
|
514
|
+
* @param {string} options.buttons.button.text The HTML text of the button
|
515
|
+
* @param {string} options.classes A string of extra classes to add to the step's content element.
|
516
|
+
* @param {Object} options.tippyOptions Extra [options to pass to tippy.js]{@link https://atomiks.github.io/tippyjs/#all-options}
|
517
|
+
* @param {boolean} options.scrollTo Should the element be scrolled to when this step is shown?
|
518
|
+
* @param {function} options.scrollToHandler A function that lets you override the default scrollTo behavior and
|
519
|
+
* define a custom action to do the scrolling, and possibly other logic.
|
520
|
+
* @param {boolean} options.showCancelLink Should a cancel “✕” be shown in the header of the step?
|
521
|
+
* @param {function} options.showOn A function that, when it returns `true`, will show the step.
|
522
|
+
* If it returns false, the step will be skipped.
|
523
|
+
* @param {string} options.text The text in the body of the step. It can be one of four types:
|
524
|
+
* ```
|
525
|
+
* - HTML string
|
526
|
+
* - Array of HTML strings
|
527
|
+
* - `HTMLElement` object
|
528
|
+
* - `Function` to be executed when the step is built. It must return one of the three options above.
|
529
|
+
* ```
|
530
|
+
* @param {string} options.title The step's title. It becomes an `h3` at the top of the step.
|
531
|
+
* @param {Object} options.when You can define `show`, `hide`, etc events inside `when`. For example:
|
532
|
+
* ```js
|
533
|
+
* when: {
|
534
|
+
* show: function() {
|
535
|
+
* window.scrollTo(0, 0);
|
536
|
+
* }
|
537
|
+
* }
|
538
|
+
* ```
|
539
|
+
* @return {Step} The newly created Step instance
|
540
|
+
*/
|
541
|
+
function Step(tour, options) {
|
542
|
+
var _this;
|
543
|
+
|
544
|
+
_classCallCheck(this, Step);
|
545
|
+
|
546
|
+
_this = _possibleConstructorReturn(this, _getPrototypeOf(Step).call(this, tour, options));
|
547
|
+
_this.tour = tour;
|
548
|
+
|
549
|
+
_bind.bindMethods.call(_assertThisInitialized(_assertThisInitialized(_this)), ['_show', 'cancel', 'complete', 'destroy', 'hide', 'isOpen', 'scrollTo', 'setupElements', 'show']);
|
550
|
+
|
551
|
+
_this.setOptions(options);
|
552
|
+
|
553
|
+
_this.bindAdvance = _bind.bindAdvance.bind(_assertThisInitialized(_assertThisInitialized(_this)));
|
554
|
+
_this.bindButtonEvents = _bind.bindButtonEvents.bind(_assertThisInitialized(_assertThisInitialized(_this)));
|
555
|
+
_this.bindCancelLink = _bind.bindCancelLink.bind(_assertThisInitialized(_assertThisInitialized(_this)));
|
556
|
+
_this.setupTooltip = _utils.setupTooltip.bind(_assertThisInitialized(_assertThisInitialized(_this)));
|
557
|
+
_this.parseAttachTo = _utils.parseAttachTo.bind(_assertThisInitialized(_assertThisInitialized(_this)));
|
558
|
+
return _possibleConstructorReturn(_this, _assertThisInitialized(_assertThisInitialized(_this)));
|
559
|
+
}
|
560
|
+
/**
|
561
|
+
* Adds buttons to the step as passed into options
|
562
|
+
*
|
563
|
+
* @private
|
564
|
+
* @param {HTMLElement} content The element for the step, to append the footer with buttons to
|
565
|
+
*/
|
566
|
+
|
567
|
+
|
568
|
+
_createClass(Step, [{
|
569
|
+
key: "_addButtons",
|
570
|
+
value: function _addButtons(content) {
|
571
|
+
var _this2 = this;
|
572
|
+
|
573
|
+
if (!(0, _isEmpty3.default)(this.options.buttons)) {
|
574
|
+
var footer = document.createElement('footer');
|
575
|
+
var buttons = (0, _utils.createFromHTML)('<ul class="shepherd-buttons"></ul>');
|
576
|
+
footer.classList.add('shepherd-footer');
|
577
|
+
this.options.buttons.map(function (cfg) {
|
578
|
+
var button = (0, _utils.createFromHTML)("<li><a class=\"shepherd-button ".concat(cfg.classes || '', "\">").concat(cfg.text, "</a>"));
|
579
|
+
buttons.appendChild(button);
|
580
|
+
|
581
|
+
_this2.bindButtonEvents(cfg, button.querySelector('a'));
|
582
|
+
});
|
583
|
+
footer.appendChild(buttons);
|
584
|
+
content.appendChild(footer);
|
585
|
+
}
|
586
|
+
}
|
587
|
+
/**
|
588
|
+
* Adds the "x" button to cancel the tour
|
589
|
+
* @param {HTMLElement} element The step element
|
590
|
+
* @param {HTMLElement} header The header element for the step
|
591
|
+
* @private
|
592
|
+
*/
|
593
|
+
|
594
|
+
}, {
|
595
|
+
key: "_addCancelLink",
|
596
|
+
value: function _addCancelLink(element, header) {
|
597
|
+
if (this.options.showCancelLink) {
|
598
|
+
var link = (0, _utils.createFromHTML)('<a href class="shepherd-cancel-link"></a>');
|
599
|
+
header.appendChild(link);
|
600
|
+
element.classList.add('shepherd-has-cancel-link');
|
601
|
+
this.bindCancelLink(link);
|
602
|
+
}
|
603
|
+
}
|
604
|
+
/**
|
605
|
+
* Adds text passed in as options
|
606
|
+
*
|
607
|
+
* @private
|
608
|
+
* @param {HTMLElement} content The content to append the text to
|
609
|
+
*/
|
610
|
+
|
611
|
+
}, {
|
612
|
+
key: "_addContent",
|
613
|
+
value: function _addContent(content) {
|
614
|
+
var text = (0, _utils.createFromHTML)('<div class="shepherd-text"></div>');
|
615
|
+
var paragraphs = this.options.text;
|
616
|
+
|
617
|
+
if ((0, _isFunction3.default)(paragraphs)) {
|
618
|
+
paragraphs = paragraphs.call(this, text);
|
619
|
+
}
|
620
|
+
|
621
|
+
if (paragraphs instanceof HTMLElement) {
|
622
|
+
text.appendChild(paragraphs);
|
623
|
+
} else {
|
624
|
+
if ((0, _isString3.default)(paragraphs)) {
|
625
|
+
paragraphs = [paragraphs];
|
626
|
+
}
|
627
|
+
|
628
|
+
paragraphs.map(function (paragraph) {
|
629
|
+
text.innerHTML += "<p>".concat(paragraph, "</p>");
|
630
|
+
});
|
631
|
+
}
|
632
|
+
|
633
|
+
content.appendChild(text);
|
634
|
+
}
|
635
|
+
/**
|
636
|
+
* Creates Shepherd element for step based on options
|
637
|
+
*
|
638
|
+
* @private
|
639
|
+
* @return {HTMLElement} The DOM element for the step tooltip
|
640
|
+
*/
|
641
|
+
|
642
|
+
}, {
|
643
|
+
key: "_createTooltipContent",
|
644
|
+
value: function _createTooltipContent() {
|
645
|
+
var content = document.createElement('div');
|
646
|
+
var classes = this.options.classes || '';
|
647
|
+
var element = (0, _utils.createFromHTML)("<div class='".concat(classes, "' data-shepherd-step-id='").concat(this.id, "' id=\"step-").concat(this.options.id, "-").concat(uniqueId(), "\"}>"));
|
648
|
+
var header = document.createElement('header');
|
649
|
+
|
650
|
+
if (this.options.title) {
|
651
|
+
var title = document.createElement('h3');
|
652
|
+
title.classList.add('shepherd-title');
|
653
|
+
title.innerHTML = "".concat(this.options.title);
|
654
|
+
header.appendChild(title);
|
655
|
+
element.classList.add('shepherd-has-title');
|
656
|
+
}
|
657
|
+
|
658
|
+
content.classList.add('shepherd-content');
|
659
|
+
header.classList.add('shepherd-header');
|
660
|
+
element.appendChild(content);
|
661
|
+
content.appendChild(header);
|
662
|
+
|
663
|
+
if (!(0, _isUndefined3.default)(this.options.text)) {
|
664
|
+
this._addContent(content);
|
665
|
+
}
|
666
|
+
|
667
|
+
this._addButtons(content);
|
668
|
+
|
669
|
+
this._addCancelLink(element, header);
|
670
|
+
|
671
|
+
return element;
|
672
|
+
}
|
673
|
+
/**
|
674
|
+
* Returns the tour for the step
|
675
|
+
* @return {Tour} The tour instance
|
676
|
+
*/
|
677
|
+
|
678
|
+
}, {
|
679
|
+
key: "getTour",
|
680
|
+
value: function getTour() {
|
681
|
+
return this.tour;
|
682
|
+
}
|
683
|
+
/**
|
684
|
+
* Cancel the tour
|
685
|
+
* Triggers the `cancel` event
|
686
|
+
*/
|
687
|
+
|
688
|
+
}, {
|
689
|
+
key: "cancel",
|
690
|
+
value: function cancel() {
|
691
|
+
this.tour.cancel();
|
692
|
+
this.trigger('cancel');
|
693
|
+
}
|
694
|
+
/**
|
695
|
+
* Complete the tour
|
696
|
+
* Triggers the `complete` event
|
697
|
+
*/
|
698
|
+
|
699
|
+
}, {
|
700
|
+
key: "complete",
|
701
|
+
value: function complete() {
|
702
|
+
this.tour.complete();
|
703
|
+
this.trigger('complete');
|
704
|
+
}
|
705
|
+
/**
|
706
|
+
* Remove the step, delete the step's element, and destroy the tippy instance for the step
|
707
|
+
* Triggers `destroy` event
|
708
|
+
*/
|
2
709
|
|
3
|
-
|
710
|
+
}, {
|
711
|
+
key: "destroy",
|
712
|
+
value: function destroy() {
|
713
|
+
if (this.tooltip) {
|
714
|
+
this.tooltip.destroy();
|
715
|
+
this.tooltip = null;
|
716
|
+
}
|
717
|
+
|
718
|
+
if ((0, _isElement3.default)(this.el) && this.el.parentNode) {
|
719
|
+
this.el.parentNode.removeChild(this.el);
|
720
|
+
this.el = null;
|
721
|
+
}
|
722
|
+
|
723
|
+
if (this.target) {
|
724
|
+
this.target.classList.remove('shepherd-enabled', 'shepherd-target');
|
725
|
+
}
|
4
726
|
|
5
|
-
(
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
727
|
+
this.trigger('destroy');
|
728
|
+
}
|
729
|
+
/**
|
730
|
+
* Hide the step and destroy the tippy instance
|
731
|
+
*/
|
732
|
+
|
733
|
+
}, {
|
734
|
+
key: "hide",
|
735
|
+
value: function hide() {
|
736
|
+
this.trigger('before-hide');
|
737
|
+
document.body.removeAttribute('data-shepherd-step');
|
738
|
+
|
739
|
+
if (this.target) {
|
740
|
+
this.target.classList.remove('shepherd-enabled', 'shepherd-target');
|
741
|
+
}
|
742
|
+
|
743
|
+
if (this.tooltip) {
|
744
|
+
this.tooltip.hide();
|
745
|
+
}
|
746
|
+
|
747
|
+
this.trigger('hide');
|
748
|
+
}
|
749
|
+
/**
|
750
|
+
* Check if the step is open and visible
|
751
|
+
* @return {boolean} True if the step is open and visible
|
752
|
+
*/
|
753
|
+
|
754
|
+
}, {
|
755
|
+
key: "isOpen",
|
756
|
+
value: function isOpen() {
|
757
|
+
return Boolean(this.tooltip && this.tooltip.state && this.tooltip.state.isVisible);
|
758
|
+
}
|
759
|
+
/**
|
760
|
+
* Create the element and set up the tippy instance
|
761
|
+
*/
|
762
|
+
|
763
|
+
}, {
|
764
|
+
key: "setupElements",
|
765
|
+
value: function setupElements() {
|
766
|
+
if (!(0, _isUndefined3.default)(this.el)) {
|
767
|
+
this.destroy();
|
768
|
+
}
|
769
|
+
|
770
|
+
this.el = this._createTooltipContent();
|
771
|
+
|
772
|
+
if (this.options.advanceOn) {
|
773
|
+
this.bindAdvance();
|
774
|
+
}
|
775
|
+
|
776
|
+
this.setupTooltip();
|
777
|
+
}
|
778
|
+
/**
|
779
|
+
* If a custom scrollToHandler is defined, call that, otherwise do the generic
|
780
|
+
* scrollIntoView call.
|
781
|
+
*/
|
782
|
+
|
783
|
+
}, {
|
784
|
+
key: "scrollTo",
|
785
|
+
value: function scrollTo() {
|
786
|
+
var _this$parseAttachTo = this.parseAttachTo(),
|
787
|
+
element = _this$parseAttachTo.element;
|
788
|
+
|
789
|
+
if ((0, _isFunction3.default)(this.options.scrollToHandler)) {
|
790
|
+
this.options.scrollToHandler(element);
|
791
|
+
} else if ((0, _isElement3.default)(element)) {
|
792
|
+
element.scrollIntoView();
|
793
|
+
}
|
794
|
+
}
|
795
|
+
/**
|
796
|
+
* Sets the options for the step, maps `when` to events, sets up buttons
|
797
|
+
* @param {Object} options The options for the step
|
798
|
+
*/
|
799
|
+
|
800
|
+
}, {
|
801
|
+
key: "setOptions",
|
802
|
+
value: function setOptions() {
|
803
|
+
var _this3 = this;
|
804
|
+
|
805
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
806
|
+
this.options = options;
|
807
|
+
var when = this.options.when;
|
808
|
+
this.destroy();
|
809
|
+
this.id = this.options.id || "step-".concat(uniqueId());
|
810
|
+
(0, _forOwn3.default)(when, function (handler, event) {
|
811
|
+
_this3.on(event, handler, _this3);
|
812
|
+
});
|
813
|
+
}
|
814
|
+
/**
|
815
|
+
* Wraps `_show` and ensures `beforeShowPromise` resolves before calling show
|
816
|
+
* @return {*|Promise}
|
817
|
+
*/
|
818
|
+
|
819
|
+
}, {
|
820
|
+
key: "show",
|
821
|
+
value: function show() {
|
822
|
+
var _this4 = this;
|
823
|
+
|
824
|
+
if ((0, _isFunction3.default)(this.options.beforeShowPromise)) {
|
825
|
+
var beforeShowPromise = this.options.beforeShowPromise();
|
826
|
+
|
827
|
+
if (!(0, _isUndefined3.default)(beforeShowPromise)) {
|
828
|
+
return beforeShowPromise.then(function () {
|
829
|
+
return _this4._show();
|
830
|
+
});
|
831
|
+
}
|
832
|
+
}
|
833
|
+
|
834
|
+
this._show();
|
835
|
+
}
|
836
|
+
/**
|
837
|
+
* Triggers `before-show`, generates the tooltip DOM content,
|
838
|
+
* sets up a tippy instance for the tooltip, then triggers `show`.
|
839
|
+
* @private
|
840
|
+
*/
|
841
|
+
|
842
|
+
}, {
|
843
|
+
key: "_show",
|
844
|
+
value: function _show() {
|
845
|
+
var _this5 = this;
|
846
|
+
|
847
|
+
this.trigger('before-show');
|
848
|
+
|
849
|
+
if (!this.el) {
|
850
|
+
this.setupElements();
|
851
|
+
}
|
852
|
+
|
853
|
+
this.target.classList.add('shepherd-enabled', 'shepherd-target');
|
854
|
+
document.body.setAttribute('data-shepherd-step', this.id);
|
855
|
+
|
856
|
+
if (this.options.scrollTo) {
|
857
|
+
setTimeout(function () {
|
858
|
+
_this5.scrollTo();
|
859
|
+
});
|
860
|
+
}
|
861
|
+
|
862
|
+
this.tooltip.show();
|
863
|
+
this.trigger('show');
|
864
|
+
}
|
865
|
+
}]);
|
866
|
+
|
867
|
+
return Step;
|
868
|
+
}(_evented.Evented);
|
869
|
+
|
870
|
+
/***/ }),
|
871
|
+
/* 8 */
|
872
|
+
/***/ (function(module, exports) {
|
873
|
+
|
874
|
+
/**
|
875
|
+
* Checks if `value` is classified as an `Array` object.
|
876
|
+
*
|
877
|
+
* @static
|
878
|
+
* @memberOf _
|
879
|
+
* @since 0.1.0
|
880
|
+
* @category Lang
|
881
|
+
* @param {*} value The value to check.
|
882
|
+
* @returns {boolean} Returns `true` if `value` is an array, else `false`.
|
883
|
+
* @example
|
884
|
+
*
|
885
|
+
* _.isArray([1, 2, 3]);
|
886
|
+
* // => true
|
887
|
+
*
|
888
|
+
* _.isArray(document.body.children);
|
889
|
+
* // => false
|
890
|
+
*
|
891
|
+
* _.isArray('abc');
|
892
|
+
* // => false
|
893
|
+
*
|
894
|
+
* _.isArray(_.noop);
|
895
|
+
* // => false
|
896
|
+
*/
|
897
|
+
var isArray = Array.isArray;
|
898
|
+
|
899
|
+
module.exports = isArray;
|
900
|
+
|
901
|
+
|
902
|
+
/***/ }),
|
903
|
+
/* 9 */
|
904
|
+
/***/ (function(module, exports, __webpack_require__) {
|
905
|
+
|
906
|
+
var baseKeys = __webpack_require__(19),
|
907
|
+
getTag = __webpack_require__(20),
|
908
|
+
isArguments = __webpack_require__(21),
|
909
|
+
isArray = __webpack_require__(8),
|
910
|
+
isArrayLike = __webpack_require__(22),
|
911
|
+
isBuffer = __webpack_require__(24),
|
912
|
+
isPrototype = __webpack_require__(25),
|
913
|
+
isTypedArray = __webpack_require__(26);
|
914
|
+
|
915
|
+
/** `Object#toString` result references. */
|
916
|
+
var mapTag = '[object Map]',
|
917
|
+
setTag = '[object Set]';
|
918
|
+
|
919
|
+
/** Used for built-in method references. */
|
920
|
+
var objectProto = Object.prototype;
|
921
|
+
|
922
|
+
/** Used to check objects for own properties. */
|
923
|
+
var hasOwnProperty = objectProto.hasOwnProperty;
|
924
|
+
|
925
|
+
/**
|
926
|
+
* Checks if `value` is an empty object, collection, map, or set.
|
927
|
+
*
|
928
|
+
* Objects are considered empty if they have no own enumerable string keyed
|
929
|
+
* properties.
|
930
|
+
*
|
931
|
+
* Array-like values such as `arguments` objects, arrays, buffers, strings, or
|
932
|
+
* jQuery-like collections are considered empty if they have a `length` of `0`.
|
933
|
+
* Similarly, maps and sets are considered empty if they have a `size` of `0`.
|
934
|
+
*
|
935
|
+
* @static
|
936
|
+
* @memberOf _
|
937
|
+
* @since 0.1.0
|
938
|
+
* @category Lang
|
939
|
+
* @param {*} value The value to check.
|
940
|
+
* @returns {boolean} Returns `true` if `value` is empty, else `false`.
|
941
|
+
* @example
|
942
|
+
*
|
943
|
+
* _.isEmpty(null);
|
944
|
+
* // => true
|
945
|
+
*
|
946
|
+
* _.isEmpty(true);
|
947
|
+
* // => true
|
948
|
+
*
|
949
|
+
* _.isEmpty(1);
|
950
|
+
* // => true
|
951
|
+
*
|
952
|
+
* _.isEmpty([1, 2, 3]);
|
953
|
+
* // => false
|
954
|
+
*
|
955
|
+
* _.isEmpty({ 'a': 1 });
|
956
|
+
* // => false
|
957
|
+
*/
|
958
|
+
function isEmpty(value) {
|
959
|
+
if (value == null) {
|
960
|
+
return true;
|
961
|
+
}
|
962
|
+
if (isArrayLike(value) &&
|
963
|
+
(isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||
|
964
|
+
isBuffer(value) || isTypedArray(value) || isArguments(value))) {
|
965
|
+
return !value.length;
|
966
|
+
}
|
967
|
+
var tag = getTag(value);
|
968
|
+
if (tag == mapTag || tag == setTag) {
|
969
|
+
return !value.size;
|
970
|
+
}
|
971
|
+
if (isPrototype(value)) {
|
972
|
+
return !baseKeys(value).length;
|
973
|
+
}
|
974
|
+
for (var key in value) {
|
975
|
+
if (hasOwnProperty.call(value, key)) {
|
976
|
+
return false;
|
977
|
+
}
|
978
|
+
}
|
979
|
+
return true;
|
980
|
+
}
|
981
|
+
|
982
|
+
module.exports = isEmpty;
|
983
|
+
|
984
|
+
|
985
|
+
/***/ }),
|
986
|
+
/* 10 */
|
987
|
+
/***/ (function(module, exports, __webpack_require__) {
|
988
|
+
|
989
|
+
var baseForOwn = __webpack_require__(30),
|
990
|
+
castFunction = __webpack_require__(34);
|
991
|
+
|
992
|
+
/**
|
993
|
+
* Iterates over own enumerable string keyed properties of an object and
|
994
|
+
* invokes `iteratee` for each property. The iteratee is invoked with three
|
995
|
+
* arguments: (value, key, object). Iteratee functions may exit iteration
|
996
|
+
* early by explicitly returning `false`.
|
997
|
+
*
|
998
|
+
* @static
|
999
|
+
* @memberOf _
|
1000
|
+
* @since 0.3.0
|
1001
|
+
* @category Object
|
1002
|
+
* @param {Object} object The object to iterate over.
|
1003
|
+
* @param {Function} [iteratee=_.identity] The function invoked per iteration.
|
1004
|
+
* @returns {Object} Returns `object`.
|
1005
|
+
* @see _.forOwnRight
|
1006
|
+
* @example
|
1007
|
+
*
|
1008
|
+
* function Foo() {
|
1009
|
+
* this.a = 1;
|
1010
|
+
* this.b = 2;
|
1011
|
+
* }
|
1012
|
+
*
|
1013
|
+
* Foo.prototype.c = 3;
|
1014
|
+
*
|
1015
|
+
* _.forOwn(new Foo, function(value, key) {
|
1016
|
+
* console.log(key);
|
1017
|
+
* });
|
1018
|
+
* // => Logs 'a' then 'b' (iteration order is not guaranteed).
|
1019
|
+
*/
|
1020
|
+
function forOwn(object, iteratee) {
|
1021
|
+
return object && baseForOwn(object, castFunction(iteratee));
|
1022
|
+
}
|
1023
|
+
|
1024
|
+
module.exports = forOwn;
|
1025
|
+
|
1026
|
+
|
1027
|
+
/***/ }),
|
1028
|
+
/* 11 */
|
1029
|
+
/***/ (function(module, exports, __webpack_require__) {
|
1030
|
+
|
1031
|
+
"use strict";
|
1032
|
+
|
1033
|
+
|
1034
|
+
Object.defineProperty(exports, "__esModule", {
|
1035
|
+
value: true
|
1036
|
+
});
|
1037
|
+
|
1038
|
+
var _isUndefined2 = __webpack_require__(0);
|
1039
|
+
|
1040
|
+
var _isUndefined3 = _interopRequireDefault(_isUndefined2);
|
1041
|
+
|
1042
|
+
var _isString2 = __webpack_require__(2);
|
1043
|
+
|
1044
|
+
var _isString3 = _interopRequireDefault(_isString2);
|
1045
|
+
|
1046
|
+
var _forOwn2 = __webpack_require__(10);
|
1047
|
+
|
1048
|
+
var _forOwn3 = _interopRequireDefault(_forOwn2);
|
1049
|
+
|
1050
|
+
exports.bindAdvance = bindAdvance;
|
1051
|
+
exports.bindButtonEvents = bindButtonEvents;
|
1052
|
+
exports.bindCancelLink = bindCancelLink;
|
1053
|
+
exports.bindMethods = bindMethods;
|
1054
|
+
|
1055
|
+
var _utils = __webpack_require__(12);
|
1056
|
+
|
1057
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
1058
|
+
|
1059
|
+
/**
|
1060
|
+
* Sets up the handler to determine if we should advance the tour
|
1061
|
+
* @private
|
1062
|
+
*/
|
1063
|
+
function _setupAdvanceOnHandler(selector) {
|
1064
|
+
var _this = this;
|
1065
|
+
|
1066
|
+
return function (event) {
|
1067
|
+
if (_this.isOpen()) {
|
1068
|
+
var targetIsEl = _this.el && event.target === _this.el;
|
1069
|
+
var targetIsSelector = !(0, _isUndefined3.default)(selector) && event.target.matches(selector);
|
1070
|
+
|
1071
|
+
if (targetIsSelector || targetIsEl) {
|
1072
|
+
_this.tour.next();
|
1073
|
+
}
|
1074
|
+
}
|
1075
|
+
};
|
1076
|
+
}
|
1077
|
+
/**
|
1078
|
+
* Bind the event handler for advanceOn
|
1079
|
+
*/
|
1080
|
+
|
1081
|
+
|
1082
|
+
function bindAdvance() {
|
1083
|
+
// An empty selector matches the step element
|
1084
|
+
var _parseShorthand = (0, _utils.parseShorthand)(this.options.advanceOn, ['selector', 'event']),
|
1085
|
+
event = _parseShorthand.event,
|
1086
|
+
selector = _parseShorthand.selector;
|
1087
|
+
|
1088
|
+
var handler = _setupAdvanceOnHandler.call(this, selector); // TODO: this should also bind/unbind on show/hide
|
1089
|
+
|
1090
|
+
|
1091
|
+
var el = document.querySelector(selector);
|
1092
|
+
|
1093
|
+
if (!(0, _isUndefined3.default)(selector) && el) {
|
1094
|
+
el.addEventListener(event, handler);
|
10
1095
|
} else {
|
11
|
-
|
1096
|
+
document.body.addEventListener(event, handler, true);
|
12
1097
|
}
|
13
|
-
}(this, function(Tether) {
|
14
1098
|
|
15
|
-
|
1099
|
+
this.on('destroy', function () {
|
1100
|
+
return document.body.removeEventListener(event, handler, true);
|
1101
|
+
});
|
1102
|
+
}
|
1103
|
+
/**
|
1104
|
+
* Bind events to the buttons for next, back, etc
|
1105
|
+
* @param {Object} cfg An object containing the config options for the button
|
1106
|
+
* @param {HTMLElement} el The element for the button
|
1107
|
+
*/
|
16
1108
|
|
17
|
-
'use strict';
|
18
1109
|
|
19
|
-
|
1110
|
+
function bindButtonEvents(cfg, el) {
|
1111
|
+
var _this2 = this;
|
20
1112
|
|
21
|
-
|
1113
|
+
cfg.events = cfg.events || {};
|
22
1114
|
|
23
|
-
|
1115
|
+
if (!(0, _isUndefined3.default)(cfg.action)) {
|
1116
|
+
// Including both a click event and an action is not supported
|
1117
|
+
cfg.events.click = cfg.action;
|
1118
|
+
}
|
24
1119
|
|
25
|
-
|
1120
|
+
(0, _forOwn3.default)(cfg.events, function (handler, event) {
|
1121
|
+
if ((0, _isString3.default)(handler)) {
|
1122
|
+
var page = handler;
|
26
1123
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
var hasClass = _Tether$Utils.hasClass;
|
32
|
-
var removeClass = _Tether$Utils.removeClass;
|
33
|
-
var uniqueId = _Tether$Utils.uniqueId;
|
1124
|
+
handler = function handler() {
|
1125
|
+
return _this2.tour.show(page);
|
1126
|
+
};
|
1127
|
+
}
|
34
1128
|
|
35
|
-
|
1129
|
+
el.dataset.buttonEvent = true;
|
1130
|
+
el.addEventListener(event, handler); // Cleanup event listeners on destroy
|
36
1131
|
|
37
|
-
function
|
38
|
-
|
39
|
-
|
1132
|
+
_this2.on('destroy', function () {
|
1133
|
+
el.removeAttribute('data-button-event');
|
1134
|
+
el.removeEventListener(event, handler);
|
1135
|
+
});
|
1136
|
+
});
|
1137
|
+
}
|
1138
|
+
/**
|
1139
|
+
* Add a click listener to the cancel link that cancels the tour
|
1140
|
+
* @param {HTMLElement} link The cancel link element
|
1141
|
+
*/
|
40
1142
|
|
41
|
-
function isArray(obj) {
|
42
|
-
return obj && obj.constructor === Array;
|
43
|
-
};
|
44
1143
|
|
45
|
-
function
|
46
|
-
|
47
|
-
};
|
1144
|
+
function bindCancelLink(link) {
|
1145
|
+
var _this3 = this;
|
48
1146
|
|
49
|
-
function
|
50
|
-
|
51
|
-
|
1147
|
+
link.addEventListener('click', function (e) {
|
1148
|
+
e.preventDefault();
|
1149
|
+
|
1150
|
+
_this3.cancel();
|
1151
|
+
});
|
1152
|
+
}
|
1153
|
+
/**
|
1154
|
+
* Take an array of strings and look up methods by name, then bind them to `this`
|
1155
|
+
* @param {String[]} methods The names of methods to bind
|
1156
|
+
*/
|
52
1157
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
1158
|
+
|
1159
|
+
function bindMethods(methods) {
|
1160
|
+
var _this4 = this;
|
1161
|
+
|
1162
|
+
methods.map(function (method) {
|
1163
|
+
_this4[method] = _this4[method].bind(_this4);
|
1164
|
+
});
|
1165
|
+
}
|
1166
|
+
|
1167
|
+
/***/ }),
|
1168
|
+
/* 12 */
|
1169
|
+
/***/ (function(module, exports, __webpack_require__) {
|
1170
|
+
|
1171
|
+
"use strict";
|
1172
|
+
|
1173
|
+
|
1174
|
+
Object.defineProperty(exports, "__esModule", {
|
1175
|
+
value: true
|
1176
|
+
});
|
1177
|
+
|
1178
|
+
var _zipObject2 = __webpack_require__(36);
|
1179
|
+
|
1180
|
+
var _zipObject3 = _interopRequireDefault(_zipObject2);
|
1181
|
+
|
1182
|
+
var _isUndefined2 = __webpack_require__(0);
|
1183
|
+
|
1184
|
+
var _isUndefined3 = _interopRequireDefault(_isUndefined2);
|
1185
|
+
|
1186
|
+
var _isObjectLike2 = __webpack_require__(1);
|
1187
|
+
|
1188
|
+
var _isObjectLike3 = _interopRequireDefault(_isObjectLike2);
|
1189
|
+
|
1190
|
+
var _isString2 = __webpack_require__(2);
|
1191
|
+
|
1192
|
+
var _isString3 = _interopRequireDefault(_isString2);
|
1193
|
+
|
1194
|
+
exports.createFromHTML = createFromHTML;
|
1195
|
+
exports._parseAttachToOpts = _parseAttachToOpts;
|
1196
|
+
exports.parseShorthand = parseShorthand;
|
1197
|
+
exports.setupTooltip = setupTooltip;
|
1198
|
+
exports.parseAttachTo = parseAttachTo;
|
1199
|
+
|
1200
|
+
var _tippy = __webpack_require__(13);
|
1201
|
+
|
1202
|
+
var _tippy2 = _interopRequireDefault(_tippy);
|
1203
|
+
|
1204
|
+
var _errorMessages = __webpack_require__(44);
|
1205
|
+
|
1206
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
1207
|
+
|
1208
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
|
1209
|
+
|
1210
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
1211
|
+
|
1212
|
+
var centeredStylePopperModifier = {
|
1213
|
+
computeStyle: {
|
1214
|
+
enabled: true,
|
1215
|
+
fn: function fn(data) {
|
1216
|
+
data.styles = Object.assign({}, data.styles, {
|
1217
|
+
left: '50%',
|
1218
|
+
top: '50%',
|
1219
|
+
transform: 'translate(-50%, -50%)'
|
1220
|
+
});
|
1221
|
+
return data;
|
1222
|
+
}
|
1223
|
+
}
|
1224
|
+
}; // Used to compose settings for tippyOptions.popperOptions (https://atomiks.github.io/tippyjs/#popper-options-option)
|
1225
|
+
|
1226
|
+
var defaultPopperOptions = {
|
1227
|
+
positionFixed: true
|
69
1228
|
};
|
1229
|
+
/**
|
1230
|
+
* TODO rewrite the way items are being added to use more performant documentFragment code
|
1231
|
+
* @param html
|
1232
|
+
* @return {HTMLElement} The element created from the passed HTML string
|
1233
|
+
*/
|
70
1234
|
|
71
1235
|
function createFromHTML(html) {
|
72
1236
|
var el = document.createElement('div');
|
73
1237
|
el.innerHTML = html;
|
74
1238
|
return el.children[0];
|
75
1239
|
}
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
matches = el.mozMatchesSelector;
|
89
|
-
} else if (!isUndefined(el.oMatchesSelector)) {
|
90
|
-
matches = el.oMatchesSelector;
|
91
|
-
}
|
92
|
-
return matches.call(el, sel);
|
93
|
-
}
|
94
|
-
|
95
|
-
var positionRe = /^(.+) (top|left|right|bottom|center|\[[a-z ]+\])$/;
|
96
|
-
|
97
|
-
function parsePosition(str) {
|
98
|
-
if (isObjectLoose(str)) {
|
99
|
-
if (str.hasOwnProperty("element") && str.hasOwnProperty("on")) {
|
100
|
-
return str;
|
1240
|
+
/**
|
1241
|
+
* Parse the position object or string to return the attachment and element to attach to
|
1242
|
+
* @param {Object|String} position Either a string or object denoting the selector and position for attachment
|
1243
|
+
* @return {Object} The object with `element` and `on` for the step
|
1244
|
+
* @private
|
1245
|
+
*/
|
1246
|
+
|
1247
|
+
|
1248
|
+
function _parseAttachToOpts(opts) {
|
1249
|
+
if ((0, _isObjectLike3.default)(opts)) {
|
1250
|
+
if (opts.hasOwnProperty('element') && opts.hasOwnProperty('on')) {
|
1251
|
+
return opts;
|
101
1252
|
}
|
1253
|
+
|
102
1254
|
return null;
|
103
1255
|
}
|
104
1256
|
|
105
|
-
var
|
1257
|
+
var positionRe = /^(.+) ((auto|top|left|right|bottom)(-start|-end)?)$/;
|
1258
|
+
var matches = positionRe.exec(opts);
|
1259
|
+
|
106
1260
|
if (!matches) {
|
107
1261
|
return null;
|
108
1262
|
}
|
109
1263
|
|
110
|
-
var on = matches[2];
|
111
|
-
if (on[0] === '[') {
|
112
|
-
on = on.substring(1, on.length - 1);
|
113
|
-
}
|
114
|
-
|
115
1264
|
return {
|
116
|
-
|
117
|
-
|
1265
|
+
element: matches[1],
|
1266
|
+
on: matches[2]
|
118
1267
|
};
|
119
1268
|
}
|
1269
|
+
/**
|
1270
|
+
* @param obj
|
1271
|
+
* @param {Array} props
|
1272
|
+
* @return {*}
|
1273
|
+
*/
|
1274
|
+
|
120
1275
|
|
121
1276
|
function parseShorthand(obj, props) {
|
122
|
-
if (obj === null ||
|
1277
|
+
if (obj === null || (0, _isUndefined3.default)(obj)) {
|
123
1278
|
return obj;
|
124
|
-
} else if (
|
1279
|
+
} else if ((0, _isObjectLike3.default)(obj)) {
|
125
1280
|
return obj;
|
126
1281
|
}
|
127
1282
|
|
128
|
-
var
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
1283
|
+
var values = obj.split(' ');
|
1284
|
+
return (0, _zipObject3.default)(props, values);
|
1285
|
+
}
|
1286
|
+
/**
|
1287
|
+
* Determines options for the tooltip and initializes
|
1288
|
+
* `this.tooltip` as a Tippy.js instance.
|
1289
|
+
*/
|
1290
|
+
|
1291
|
+
|
1292
|
+
function setupTooltip() {
|
1293
|
+
if ((0, _isUndefined3.default)(_tippy2.default)) {
|
1294
|
+
throw new Error(_errorMessages.missingTippy);
|
1295
|
+
}
|
1296
|
+
|
1297
|
+
if (this.tooltip) {
|
1298
|
+
this.tooltip.destroy();
|
1299
|
+
}
|
1300
|
+
|
1301
|
+
var attachToOpts = this.parseAttachTo();
|
1302
|
+
this.tooltip = _makeTippyInstance.call(this, attachToOpts);
|
1303
|
+
this.target = attachToOpts.element || document.body;
|
1304
|
+
this.el.classList.add('shepherd-element');
|
1305
|
+
}
|
1306
|
+
/**
|
1307
|
+
* Passes `options.attachTo` to `_parseAttachToOpts` to get the correct `attachTo` format
|
1308
|
+
* @returns {({} & {element, on}) | ({})}
|
1309
|
+
* `element` is a qualified HTML Element
|
1310
|
+
* `on` is a string position value
|
1311
|
+
*/
|
1312
|
+
|
1313
|
+
|
1314
|
+
function parseAttachTo() {
|
1315
|
+
var options = _parseAttachToOpts(this.options.attachTo) || {};
|
1316
|
+
var returnOpts = Object.assign({}, options);
|
1317
|
+
|
1318
|
+
if ((0, _isString3.default)(options.element)) {
|
1319
|
+
// Can't override the element in user opts reference because we can't
|
1320
|
+
// guarantee that the element will exist in the future.
|
1321
|
+
try {
|
1322
|
+
returnOpts.element = document.querySelector(options.element);
|
1323
|
+
} catch (e) {// TODO
|
137
1324
|
}
|
138
1325
|
|
139
|
-
|
1326
|
+
if (!returnOpts.element) {
|
1327
|
+
console.error("The element for this Shepherd step was not found ".concat(options.element));
|
1328
|
+
}
|
140
1329
|
}
|
141
1330
|
|
142
|
-
return
|
1331
|
+
return returnOpts;
|
143
1332
|
}
|
1333
|
+
/**
|
1334
|
+
* Generates a `Tippy` instance from a set of base `attachTo` options
|
1335
|
+
*
|
1336
|
+
* @return {tippy} The final tippy instance
|
1337
|
+
* @private
|
1338
|
+
*/
|
144
1339
|
|
145
|
-
var Step = (function (_Evented) {
|
146
|
-
_inherits(Step, _Evented);
|
147
1340
|
|
148
|
-
|
149
|
-
|
1341
|
+
function _makeTippyInstance(attachToOptions) {
|
1342
|
+
if (!attachToOptions.element) {
|
1343
|
+
return _makeCenteredTippy.call(this);
|
1344
|
+
}
|
150
1345
|
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
1346
|
+
var tippyOptions = _makeAttachedTippyOptions.call(this, attachToOptions);
|
1347
|
+
|
1348
|
+
return _tippy2.default.one(attachToOptions.element, tippyOptions);
|
1349
|
+
}
|
1350
|
+
/**
|
1351
|
+
* Generates the hash of options that will be passed to `Tippy` instances
|
1352
|
+
* target an element in the DOM.
|
1353
|
+
*
|
1354
|
+
* @param {Object} attachToOptions The local `attachTo` options
|
1355
|
+
* @return {Object} The final tippy options object
|
1356
|
+
* @private
|
1357
|
+
*/
|
1358
|
+
|
1359
|
+
|
1360
|
+
function _makeAttachedTippyOptions(attachToOptions) {
|
1361
|
+
var resultingTippyOptions = _objectSpread({
|
1362
|
+
content: this.el,
|
1363
|
+
placement: attachToOptions.on || 'right'
|
1364
|
+
}, this.options.tippyOptions);
|
1365
|
+
|
1366
|
+
if (this.options.tippyOptions && this.options.tippyOptions.popperOptions) {
|
1367
|
+
Object.assign(defaultPopperOptions, this.options.tippyOptions.popperOptions);
|
156
1368
|
}
|
157
1369
|
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
1370
|
+
resultingTippyOptions.popperOptions = defaultPopperOptions;
|
1371
|
+
return resultingTippyOptions;
|
1372
|
+
}
|
1373
|
+
/**
|
1374
|
+
* Generates a `Tippy` instance for a tooltip that doesn't have a
|
1375
|
+
* target element in the DOM -- and thus is positioned in the center
|
1376
|
+
* of the view
|
1377
|
+
*
|
1378
|
+
* @return {tippy} The final tippy instance
|
1379
|
+
* @private
|
1380
|
+
*/
|
1381
|
+
|
1382
|
+
|
1383
|
+
function _makeCenteredTippy() {
|
1384
|
+
var tippyOptions = _objectSpread({
|
1385
|
+
content: this.el,
|
1386
|
+
placement: 'top'
|
1387
|
+
}, this.options.tippyOptions);
|
1388
|
+
|
1389
|
+
tippyOptions.arrow = false;
|
1390
|
+
tippyOptions.popperOptions = tippyOptions.popperOptions || {};
|
1391
|
+
var finalPopperOptions = Object.assign({}, defaultPopperOptions, tippyOptions.popperOptions, {
|
1392
|
+
modifiers: Object.assign(centeredStylePopperModifier, tippyOptions.popperOptions.modifiers)
|
1393
|
+
});
|
1394
|
+
tippyOptions.popperOptions = finalPopperOptions;
|
1395
|
+
return _tippy2.default.one(document.body, tippyOptions);
|
1396
|
+
}
|
162
1397
|
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
}
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
1398
|
+
/***/ }),
|
1399
|
+
/* 13 */
|
1400
|
+
/***/ (function(module, exports, __webpack_require__) {
|
1401
|
+
|
1402
|
+
/* WEBPACK VAR INJECTION */(function(global) {(function(e,t){ true?module.exports=t():undefined})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var a=getComputedStyle(e,null);return t?a[t]:a}function a(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function r(e){if(!e)return document.body;switch(e.nodeName){case'HTML':case'BODY':return e.ownerDocument.body;case'#document':return e.body;}var p=t(e),o=p.overflow,i=p.overflowX,n=p.overflowY;return /(auto|scroll|overlay)/.test(o+n+i)?e:r(a(e))}function p(e){return 11===e?he:10===e?be:he||be}function o(e){if(!e)return document.documentElement;for(var a=p(10)?document.body:null,r=e.offsetParent;r===a&&e.nextElementSibling;)r=(e=e.nextElementSibling).offsetParent;var i=r&&r.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TD','TABLE'].indexOf(r.nodeName)&&'static'===t(r,'position')?o(r):r:e?e.ownerDocument.documentElement:document.documentElement}function n(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||o(e.firstElementChild)===e)}function s(e){return null===e.parentNode?e:s(e.parentNode)}function l(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var a=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,r=a?e:t,p=a?t:e,i=document.createRange();i.setStart(r,0),i.setEnd(p,0);var d=i.commonAncestorContainer;if(e!==d&&t!==d||r.contains(p))return n(d)?d:o(d);var c=s(e);return c.host?l(c.host,t):l(e,s(t).host)}function d(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:'top',a='top'===t?'scrollTop':'scrollLeft',r=e.nodeName;if('BODY'===r||'HTML'===r){var p=e.ownerDocument.documentElement,o=e.ownerDocument.scrollingElement||p;return o[a]}return e[a]}function c(e,t){var a=!!(2<arguments.length&&void 0!==arguments[2])&&arguments[2],r=d(t,'top'),p=d(t,'left'),o=a?-1:1;return e.top+=r*o,e.bottom+=r*o,e.left+=p*o,e.right+=p*o,e}function m(e,t){var a='x'===t?'Left':'Top',r='Left'===a?'Right':'Bottom';return parseFloat(e['border'+a+'Width'],10)+parseFloat(e['border'+r+'Width'],10)}function f(e,t,a,r){return ae(t['offset'+e],t['scroll'+e],a['client'+e],a['offset'+e],a['scroll'+e],p(10)?parseInt(a['offset'+e])+parseInt(r['margin'+('Height'===e?'Top':'Left')])+parseInt(r['margin'+('Height'===e?'Bottom':'Right')]):0)}function h(e){var t=e.body,a=e.documentElement,r=p(10)&&getComputedStyle(a);return{height:f('Height',t,a,r),width:f('Width',t,a,r)}}function b(e){return xe({},e,{right:e.left+e.width,bottom:e.top+e.height})}function u(e){var a={};try{if(p(10)){a=e.getBoundingClientRect();var r=d(e,'top'),o=d(e,'left');a.top+=r,a.left+=o,a.bottom+=r,a.right+=o}else a=e.getBoundingClientRect()}catch(t){}var i={left:a.left,top:a.top,width:a.right-a.left,height:a.bottom-a.top},n='HTML'===e.nodeName?h(e.ownerDocument):{},s=n.width||e.clientWidth||i.right-i.left,l=n.height||e.clientHeight||i.bottom-i.top,c=e.offsetWidth-s,f=e.offsetHeight-l;if(c||f){var y=t(e);c-=m(y,'x'),f-=m(y,'y'),i.width-=c,i.height-=f}return b(i)}function y(e,a){var o=!!(2<arguments.length&&void 0!==arguments[2])&&arguments[2],i=p(10),n='HTML'===a.nodeName,s=u(e),l=u(a),d=r(e),m=t(a),f=parseFloat(m.borderTopWidth,10),h=parseFloat(m.borderLeftWidth,10);o&&n&&(l.top=ae(l.top,0),l.left=ae(l.left,0));var y=b({top:s.top-l.top-f,left:s.left-l.left-h,width:s.width,height:s.height});if(y.marginTop=0,y.marginLeft=0,!i&&n){var g=parseFloat(m.marginTop,10),x=parseFloat(m.marginLeft,10);y.top-=f-g,y.bottom-=f-g,y.left-=h-x,y.right-=h-x,y.marginTop=g,y.marginLeft=x}return(i&&!o?a.contains(d):a===d&&'BODY'!==d.nodeName)&&(y=c(y,a)),y}function g(e){var t=!!(1<arguments.length&&void 0!==arguments[1])&&arguments[1],a=e.ownerDocument.documentElement,r=y(e,a),p=ae(a.clientWidth,window.innerWidth||0),o=ae(a.clientHeight,window.innerHeight||0),i=t?0:d(a),n=t?0:d(a,'left'),s={top:i-r.top+r.marginTop,left:n-r.left+r.marginLeft,width:p,height:o};return b(s)}function x(e){var r=e.nodeName;return'BODY'!==r&&'HTML'!==r&&('fixed'===t(e,'position')||x(a(e)))}function w(e){if(!e||!e.parentElement||p())return document.documentElement;for(var a=e.parentElement;a&&'none'===t(a,'transform');)a=a.parentElement;return a||document.documentElement}function v(e,t,p,o){var i=!!(4<arguments.length&&void 0!==arguments[4])&&arguments[4],n={top:0,left:0},s=i?w(e):l(e,t);if('viewport'===o)n=g(s,i);else{var d;'scrollParent'===o?(d=r(a(t)),'BODY'===d.nodeName&&(d=e.ownerDocument.documentElement)):'window'===o?d=e.ownerDocument.documentElement:d=o;var c=y(d,s,i);if('HTML'===d.nodeName&&!x(s)){var m=h(e.ownerDocument),f=m.height,b=m.width;n.top+=c.top-c.marginTop,n.bottom=f+c.top,n.left+=c.left-c.marginLeft,n.right=b+c.left}else n=c}p=p||0;var u='number'==typeof p;return n.left+=u?p:p.left||0,n.top+=u?p:p.top||0,n.right-=u?p:p.right||0,n.bottom-=u?p:p.bottom||0,n}function k(e){var t=e.width,a=e.height;return t*a}function E(e,t,a,r,p){var o=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf('auto'))return e;var i=v(a,r,o,p),n={top:{width:i.width,height:t.top-i.top},right:{width:i.right-t.right,height:i.height},bottom:{width:i.width,height:i.bottom-t.bottom},left:{width:t.left-i.left,height:i.height}},s=Object.keys(n).map(function(e){return xe({key:e},n[e],{area:k(n[e])})}).sort(function(e,t){return t.area-e.area}),l=s.filter(function(e){var t=e.width,r=e.height;return t>=a.clientWidth&&r>=a.clientHeight}),d=0<l.length?l[0].key:s[0].key,c=e.split('-')[1];return d+(c?'-'+c:'')}function O(e,t,a){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null,p=r?w(t):l(t,a);return y(a,p,r)}function L(e){var t=getComputedStyle(e),a=parseFloat(t.marginTop)+parseFloat(t.marginBottom),r=parseFloat(t.marginLeft)+parseFloat(t.marginRight),p={width:e.offsetWidth+r,height:e.offsetHeight+a};return p}function C(e){var t={left:'right',right:'left',bottom:'top',top:'bottom'};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function T(e,t,a){a=a.split('-')[0];var r=L(e),p={width:r.width,height:r.height},o=-1!==['right','left'].indexOf(a),i=o?'top':'left',n=o?'left':'top',s=o?'height':'width',l=o?'width':'height';return p[i]=t[i]+t[s]/2-r[s]/2,p[n]=a===n?t[n]-r[l]:t[C(n)],p}function A(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function Y(e,t,a){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===a});var r=A(e,function(e){return e[t]===a});return e.indexOf(r)}function S(t,a,r){var p=void 0===r?t:t.slice(0,Y(t,'name',r));return p.forEach(function(t){t['function']&&console.warn('`modifier.function` is deprecated, use `modifier.fn`!');var r=t['function']||t.fn;t.enabled&&e(r)&&(a.offsets.popper=b(a.offsets.popper),a.offsets.reference=b(a.offsets.reference),a=r(a,t))}),a}function P(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=O(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=E(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=T(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?'fixed':'absolute',e=S(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function D(e,t){return e.some(function(e){var a=e.name,r=e.enabled;return r&&a===t})}function X(e){for(var t=[!1,'ms','Webkit','Moz','O'],a=e.charAt(0).toUpperCase()+e.slice(1),r=0;r<t.length;r++){var p=t[r],o=p?''+p+a:e;if('undefined'!=typeof document.body.style[o])return o}return null}function I(){return this.state.isDestroyed=!0,D(this.modifiers,'applyStyle')&&(this.popper.removeAttribute('x-placement'),this.popper.style.position='',this.popper.style.top='',this.popper.style.left='',this.popper.style.right='',this.popper.style.bottom='',this.popper.style.willChange='',this.popper.style[X('transform')]=''),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function N(e){var t=e.ownerDocument;return t?t.defaultView:window}function H(e,t,a,p){var o='BODY'===e.nodeName,i=o?e.ownerDocument.defaultView:e;i.addEventListener(t,a,{passive:!0}),o||H(r(i.parentNode),t,a,p),p.push(i)}function R(e,t,a,p){a.updateBound=p,N(e).addEventListener('resize',a.updateBound,{passive:!0});var o=r(e);return H(o,'scroll',a.updateBound,a.scrollParents),a.scrollElement=o,a.eventsEnabled=!0,a}function B(){this.state.eventsEnabled||(this.state=R(this.reference,this.options,this.state,this.scheduleUpdate))}function M(e,t){return N(e).removeEventListener('resize',t.updateBound),t.scrollParents.forEach(function(e){e.removeEventListener('scroll',t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t}function W(){this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=M(this.reference,this.state))}function z(e){return''!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function _(e,t){Object.keys(t).forEach(function(a){var r='';-1!==['width','height','top','right','bottom','left'].indexOf(a)&&z(t[a])&&(r='px'),e.style[a]=t[a]+r})}function U(e,t){Object.keys(t).forEach(function(a){var r=t[a];!1===r?e.removeAttribute(a):e.setAttribute(a,t[a])})}function F(e,t,a){var r=A(e,function(e){var a=e.name;return a===t}),p=!!r&&e.some(function(e){return e.name===a&&e.enabled&&e.order<r.order});if(!p){var o='`'+t+'`';console.warn('`'+a+'`'+' modifier is required by '+o+' modifier in order to work, be sure to include it before '+o+'!')}return p}function V(e){return'end'===e?'start':'start'===e?'end':e}function q(e){var t=!!(1<arguments.length&&void 0!==arguments[1])&&arguments[1],a=ve.indexOf(e),r=ve.slice(a+1).concat(ve.slice(0,a));return t?r.reverse():r}function j(e,t,a,r){var p=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),o=+p[1],i=p[2];if(!o)return e;if(0===i.indexOf('%')){var n;switch(i){case'%p':n=a;break;case'%':case'%r':default:n=r;}var s=b(n);return s[t]/100*o}if('vh'===i||'vw'===i){var l;return l='vh'===i?ae(document.documentElement.clientHeight,window.innerHeight||0):ae(document.documentElement.clientWidth,window.innerWidth||0),l/100*o}return o}function K(e,t,a,r){var p=[0,0],o=-1!==['right','left'].indexOf(r),i=e.split(/(\+|\-)/).map(function(e){return e.trim()}),n=i.indexOf(A(i,function(e){return-1!==e.search(/,|\s/)}));i[n]&&-1===i[n].indexOf(',')&&console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');var s=/\s*,\s*|\s+/,l=-1===n?[i]:[i.slice(0,n).concat([i[n].split(s)[0]]),[i[n].split(s)[1]].concat(i.slice(n+1))];return l=l.map(function(e,r){var p=(1===r?!o:o)?'height':'width',i=!1;return e.reduce(function(e,t){return''===e[e.length-1]&&-1!==['+','-'].indexOf(t)?(e[e.length-1]=t,i=!0,e):i?(e[e.length-1]+=t,i=!1,e):e.concat(t)},[]).map(function(e){return j(e,p,t,a)})}),l.forEach(function(e,t){e.forEach(function(a,r){z(a)&&(p[t]+=a*('-'===e[r-1]?-1:1))})}),p}function G(e,t){var a=t.offset,r=e.placement,p=e.offsets,o=p.popper,i=p.reference,n=r.split('-')[0],s=void 0;return s=z(+a)?[+a,0]:K(a,o,i,n),'left'===n?(o.top+=s[0],o.left-=s[1]):'right'===n?(o.top+=s[0],o.left+=s[1]):'top'===n?(o.left+=s[0],o.top-=s[1]):'bottom'===n&&(o.left+=s[0],o.top+=s[1]),e.popper=o,e}function Q(e){document.addEventListener('click',Ct,e),document.addEventListener('touchstart',Et),window.addEventListener('blur',Tt),window.addEventListener('resize',At),!vt&&(navigator.maxTouchPoints||navigator.msMaxTouchPoints)&&document.addEventListener('pointerdown',Et)}function Z(e,t){function a(){lt(function(){W=!1})}function r(e){var t=I=e,a=t.clientX,r=t.clientY;if(q.popperInstance){var p=q.reference.getBoundingClientRect(),o=q.props.followCursor,i='horizontal'===o,n='vertical'===o;q.popperInstance.reference={getBoundingClientRect:function(){return{width:0,height:0,top:i?p.top:r,bottom:i?p.bottom:r,left:n?p.left:a,right:n?p.right:a}},clientWidth:0,clientHeight:0},q.popperInstance.scheduleUpdate()}}function p(e){var t=Ze(e.target,q.props.target);t&&!t._tippy&&(Z(t,oe({},q.props,{target:'',showOnInit:!0})),o(e))}function o(e){if(C(),!q.state.isVisible){if(q.props.target)return p(e);if(R=!0,q.props.wait)return q.props.wait(q,e);g()&&(V.arrow&&(V.arrow.style.margin='0'),document.addEventListener('mousemove',r));var t=Be(q.props.delay,0,ie.delay);t?N=setTimeout(function(){A()},t):A()}}function i(){if(C(),!q.state.isVisible)return n();R=!1;var e=Be(q.props.delay,1,ie.delay);e?H=setTimeout(function(){q.state.isVisible&&Y()},e):Y()}function n(){document.removeEventListener('mousemove',r),I=null}function s(){document.body.removeEventListener('mouseleave',i),document.removeEventListener('mousemove',_)}function l(e){!q.state.isEnabled||b(e)||(!q.state.isVisible&&(X=e),'click'===e.type&&!1!==q.props.hideOnClick&&q.state.isVisible?i():o(e))}function d(e){var t=$e(e.target,function(e){return e._tippy}),a=Ze(e.target,Oe.POPPER)===q.popper,r=t===q.reference;a||r||dt(mt(q.popper),q.popper.getBoundingClientRect(),e,q.props)&&(s(),i())}function c(e){return b(e)?void 0:q.props.interactive?(document.body.addEventListener('mouseleave',i),void document.addEventListener('mousemove',_)):void i()}function m(e){if(e.target===q.reference){if(q.props.interactive){if(!e.relatedTarget)return;if(Ze(e.relatedTarget,Oe.POPPER))return}i()}}function f(e){Ze(e.target,q.props.target)&&o(e)}function h(e){Ze(e.target,q.props.target)&&i()}function b(e){var t=-1<e.type.indexOf('touch'),a=vt&&kt&&q.props.touchHold&&!t,r=kt&&!q.props.touchHold&&t;return a||r}function y(){var e=q.popperChildren.tooltip,t=q.props.popperOptions,a=Oe['round'===q.props.arrowType?'ROUND_ARROW':'ARROW'],r=e.querySelector(a),p=oe({placement:q.props.placement},t||{},{modifiers:oe({},t?t.modifiers:{},{arrow:oe({element:a},t&&t.modifiers?t.modifiers.arrow:{}),flip:oe({enabled:q.props.flip,padding:q.props.distance+5,behavior:q.props.flipBehavior},t&&t.modifiers?t.modifiers.flip:{}),offset:oe({offset:q.props.offset},t&&t.modifiers?t.modifiers.offset:{})}),onCreate:function(){e.style[mt(q.popper)]=ct(q.props.distance,ie.distance),r&&q.props.arrowTransform&&it(r,q.props.arrowTransform)},onUpdate:function(){var t=e.style;t.top='',t.bottom='',t.left='',t.right='',t[mt(q.popper)]=ct(q.props.distance,ie.distance),r&&q.props.arrowTransform&&it(r,q.props.arrowTransform)}}),n=new MutationObserver(function(){q.popperInstance.update()});return n.observe(q.popper,{childList:!0,subtree:!0}),D&&D.disconnect(),D=n,z||(z=!0,q.popper.addEventListener('mouseenter',function(e){q.props.interactive&&q.state.isVisible&&'mouseenter'===X.type&&o(e)}),q.popper.addEventListener('mouseleave',function(e){q.props.interactive&&'mouseenter'===X.type&&0===q.props.interactiveDebounce&&dt(mt(q.popper),q.popper.getBoundingClientRect(),e,q.props)&&i()})),new Ee(q.reference,q.popper,p)}function u(e){if(q.popperInstance?(!g()&&q.popperInstance.scheduleUpdate(),q.props.livePlacement&&!g()&&q.popperInstance.enableEventListeners()):(q.popperInstance=y(),!q.props.livePlacement&&q.popperInstance.disableEventListeners()),q.popperInstance.reference=q.reference,g()){q.popperChildren.arrow&&(q.popperChildren.arrow.style.margin='');var t=Be(q.props.delay,0,ie.delay);X.type&&r(t&&I?I:X)}st(q.popperInstance,e),q.props.appendTo.contains(q.popper)||(q.props.appendTo.appendChild(q.popper),q.props.onMount(q),q.state.isMounted=!0)}function g(){return q.props.followCursor&&!kt&&'focus'!==X.type}function x(){Pe([q.popper],xt?0:q.props.updateDuration);(function e(){q.popperInstance&&q.popperInstance.scheduleUpdate(),q.state.isMounted?requestAnimationFrame(e):Pe([q.popper],0)})()}function w(e,t){k(e,function(){!q.state.isVisible&&q.props.appendTo.contains(q.popper)&&t()})}function v(e,t){k(e,t)}function k(e,t){if(0===e)return t();var a=q.popperChildren.tooltip,r=function r(p){p.target===a&&(ht(a,'remove',r),t())};ht(a,'remove',B),ht(a,'add',r),B=r}function E(e,t,a){q.reference.addEventListener(e,t),a.push({eventType:e,handler:t})}function O(){M=q.props.trigger.trim().split(' ').reduce(function(e,t){return'manual'===t?e:(q.props.target?'mouseenter'===t?(E('mouseover',f,e),E('mouseout',h,e)):'focus'===t?(E('focusin',f,e),E('focusout',h,e)):'click'===t?E(t,f,e):void 0:(E(t,l,e),q.props.touchHold&&(E('touchstart',l,e),E('touchend',c,e)),'mouseenter'===t?E('mouseleave',c,e):'focus'===t?E(xt?'focusout':'blur',m,e):void 0),e)},[])}function L(){M.forEach(function(e){var t=e.eventType,a=e.handler;q.reference.removeEventListener(t,a)})}function C(){clearTimeout(N),clearTimeout(H)}function T(e){yt(e,ie);var t=q.props,a=ft(q.reference,oe({},q.props,e,{performance:!0}));a.performance=e.performance||t.performance,q.props=a,('trigger'in e||'touchHold'in e)&&(L(),O()),'interactiveDebounce'in e&&(s(),_=bt(d,e.interactiveDebounce)),qe(q.popper,t,a),q.popperChildren=De(q.popper),q.popperInstance&&se.some(function(t){return t in e})&&(q.popperInstance.destroy(),q.popperInstance=y(),!q.state.isVisible&&q.popperInstance.disableEventListeners(),q.props.followCursor&&I&&r(I))}function A(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:Be(q.props.duration,0,ie.duration[0]);return q.state.isDestroyed||!q.state.isEnabled||kt&&!q.props.touch?void 0:q.reference.isVirtual||document.documentElement.contains(q.reference)?q.reference.hasAttribute('disabled')?void 0:W?void(W=!1):void(!1===q.props.onShow(q)||(q.popper.style.visibility='visible',q.state.isVisible=!0,Pe([q.popper,q.popperChildren.tooltip,q.popperChildren.backdrop],0),u(function(){q.state.isVisible&&(!g()&&q.popperInstance.update(),Pe([q.popperChildren.tooltip,q.popperChildren.backdrop,q.popperChildren.content],e),q.popperChildren.backdrop&&(q.popperChildren.content.style.transitionDelay=ee(e/6)+'ms'),q.props.interactive&&q.reference.classList.add('tippy-active'),q.props.sticky&&x(),nt([q.popperChildren.tooltip,q.popperChildren.backdrop,q.popperChildren.content],'visible'),v(e,function(){0===q.props.updateDuration&&q.popperChildren.tooltip.classList.add('tippy-notransition'),q.props.interactive&&-1<['focus','click'].indexOf(X.type)&&Je(q.popper),q.reference.setAttribute('aria-describedby',q.popper.id),q.props.onShown(q),q.state.isShown=!0}))}))):S()}function Y(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:Be(q.props.duration,1,ie.duration[1]);q.state.isDestroyed||!q.state.isEnabled||!1===q.props.onHide(q)||(0===q.props.updateDuration&&q.popperChildren.tooltip.classList.remove('tippy-notransition'),q.props.interactive&&q.reference.classList.remove('tippy-active'),q.popper.style.visibility='hidden',q.state.isVisible=!1,q.state.isShown=!1,Pe([q.popperChildren.tooltip,q.popperChildren.backdrop,q.popperChildren.content],e),nt([q.popperChildren.tooltip,q.popperChildren.backdrop,q.popperChildren.content],'hidden'),q.props.interactive&&!W&&-1<['focus','click'].indexOf(X.type)&&('focus'===X.type&&(W=!0),Je(q.reference)),w(e,function(){R||n(),q.reference.removeAttribute('aria-describedby'),q.popperInstance.disableEventListeners(),q.props.appendTo.removeChild(q.popper),q.state.isMounted=!1,q.props.onHidden(q)}))}function S(e){q.state.isDestroyed||(q.state.isVisible&&Y(0),L(),q.reference.removeEventListener('click',a),delete q.reference._tippy,q.props.target&&e&&Ae(q.reference.querySelectorAll(q.props.target)).forEach(function(e){return e._tippy&&e._tippy.destroy()}),q.popperInstance&&q.popperInstance.destroy(),D&&D.disconnect(),q.state.isDestroyed=!0)}var P=ft(e,t);if(!P.multiple&&e._tippy)return null;var D=null,X={},I=null,N=0,H=0,R=!1,B=function(){},M=[],W=!1,z=!1,_=0<P.interactiveDebounce?bt(d,P.interactiveDebounce):d,U=Yt++,F=Ve(U,P),V=De(F),q={id:U,reference:e,popper:F,popperChildren:V,popperInstance:null,props:P,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},clearDelayTimeouts:C,set:T,setContent:function(e){T({content:e})},show:A,hide:Y,enable:function(){q.state.isEnabled=!0},disable:function(){q.state.isEnabled=!1},destroy:S};return O(),e.addEventListener('click',a),P.lazy||(q.popperInstance=y(),q.popperInstance.disableEventListeners()),P.showOnInit&&setTimeout(o,20),!P.a11y||P.target||Se(e)||e.setAttribute('tabindex','0'),e._tippy=q,F._tippy=q,q}function $(e,t,a){yt(t,ie),St||(Q(Pt),St=!0);var r=oe({},ie,t);Xe(e)&&Ge(e);var p=He(e),o=p[0],i=(a&&o?[o]:p).reduce(function(e,t){var a=t&&Z(t,r);return a&&e.push(a),e},[]);return{targets:e,props:r,instances:i,destroyAll:function(){this.instances.forEach(function(e){e.destroy()}),this.instances=[]}}}for(var J=Math.min,ee=Math.round,te=Math.floor,ae=Math.max,re='.tippy-iOS{cursor:pointer!important}.tippy-notransition{transition:none!important}.tippy-popper{-webkit-perspective:700px;perspective:700px;z-index:9999;outline:0;transition-timing-function:cubic-bezier(.165,.84,.44,1);pointer-events:none;line-height:1.4}.tippy-popper[x-placement^=top] .tippy-backdrop{border-radius:40% 40% 0 0}.tippy-popper[x-placement^=top] .tippy-roundarrow{bottom:-8px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.tippy-popper[x-placement^=top] .tippy-arrow{border-top:8px solid #333;border-right:8px solid transparent;border-left:8px solid transparent;bottom:-7px;margin:0 6px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-backdrop{-webkit-transform-origin:0 25%;transform-origin:0 25%}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-55%);transform:scale(1) translate(-50%,-55%);opacity:1}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-50%,-45%);transform:scale(.2) translate(-50%,-45%);opacity:0}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=visible]{opacity:1;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}.tippy-popper[x-placement^=top] [data-animation=perspective]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=visible]{opacity:1;-webkit-transform:translateY(-10px) rotateX(0);transform:translateY(-10px) rotateX(0)}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:translateY(0) rotateX(60deg);transform:translateY(0) rotateX(60deg)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=visible]{opacity:1;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=visible]{opacity:1;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=visible]{opacity:1;-webkit-transform:translateY(-10px) scale(1);transform:translateY(-10px) scale(1)}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(0) scale(.5);transform:translateY(0) scale(.5)}.tippy-popper[x-placement^=bottom] .tippy-backdrop{border-radius:0 0 30% 30%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow{top:-8px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(0);transform:rotate(0)}.tippy-popper[x-placement^=bottom] .tippy-arrow{border-bottom:8px solid #333;border-right:8px solid transparent;border-left:8px solid transparent;top:-7px;margin:0 6px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-backdrop{-webkit-transform-origin:0 -50%;transform-origin:0 -50%}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-45%);transform:scale(1) translate(-50%,-45%);opacity:1}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-50%);transform:scale(.2) translate(-50%);opacity:0}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=visible]{opacity:1;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}.tippy-popper[x-placement^=bottom] [data-animation=perspective]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=visible]{opacity:1;-webkit-transform:translateY(10px) rotateX(0);transform:translateY(10px) rotateX(0)}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:translateY(0) rotateX(-60deg);transform:translateY(0) rotateX(-60deg)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=visible]{opacity:1;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=visible]{opacity:1;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=visible]{opacity:1;-webkit-transform:translateY(10px) scale(1);transform:translateY(10px) scale(1)}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(0) scale(.5);transform:translateY(0) scale(.5)}.tippy-popper[x-placement^=left] .tippy-backdrop{border-radius:50% 0 0 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow{right:-16px;-webkit-transform-origin:33.33333333% 50%;transform-origin:33.33333333% 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.tippy-popper[x-placement^=left] .tippy-arrow{border-left:8px solid #333;border-top:8px solid transparent;border-bottom:8px solid transparent;right:-7px;margin:3px 0;-webkit-transform-origin:0 50%;transform-origin:0 50%}.tippy-popper[x-placement^=left] .tippy-backdrop{-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%);opacity:1}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-75%,-50%);transform:scale(.2) translate(-75%,-50%);opacity:0}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=visible]{opacity:1;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}.tippy-popper[x-placement^=left] [data-animation=perspective]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=visible]{opacity:1;-webkit-transform:translateX(-10px) rotateY(0);transform:translateX(-10px) rotateY(0)}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:translateX(0) rotateY(-60deg);transform:translateX(0) rotateY(-60deg)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=visible]{opacity:1;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=visible]{opacity:1;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=visible]{opacity:1;-webkit-transform:translateX(-10px) scale(1);transform:translateX(-10px) scale(1)}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(0) scale(.5);transform:translateX(0) scale(.5)}.tippy-popper[x-placement^=right] .tippy-backdrop{border-radius:0 50% 50% 0}.tippy-popper[x-placement^=right] .tippy-roundarrow{left:-16px;-webkit-transform-origin:66.66666666% 50%;transform-origin:66.66666666% 50%}.tippy-popper[x-placement^=right] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.tippy-popper[x-placement^=right] .tippy-arrow{border-right:8px solid #333;border-top:8px solid transparent;border-bottom:8px solid transparent;left:-7px;margin:3px 0;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.tippy-popper[x-placement^=right] .tippy-backdrop{-webkit-transform-origin:-50% 0;transform-origin:-50% 0}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%);opacity:1}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-25%,-50%);transform:scale(.2) translate(-25%,-50%);opacity:0}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=visible]{opacity:1;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}.tippy-popper[x-placement^=right] [data-animation=perspective]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=visible]{opacity:1;-webkit-transform:translateX(10px) rotateY(0);transform:translateX(10px) rotateY(0)}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:translateX(0) rotateY(60deg);transform:translateX(0) rotateY(60deg)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=visible]{opacity:1;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=visible]{opacity:1;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=visible]{opacity:1;-webkit-transform:translateX(10px) scale(1);transform:translateX(10px) scale(1)}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(0) scale(.5);transform:translateX(0) scale(.5)}.tippy-tooltip{position:relative;color:#fff;border-radius:4px;font-size:.9rem;padding:.3rem .6rem;max-width:350px;text-align:center;will-change:transform;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#333}.tippy-tooltip[data-size=small]{padding:.2rem .4rem;font-size:.75rem}.tippy-tooltip[data-size=large]{padding:.4rem .8rem;font-size:1rem}.tippy-tooltip[data-animatefill]{overflow:hidden;background-color:transparent}.tippy-tooltip[data-interactive],.tippy-tooltip[data-interactive] path{pointer-events:auto}.tippy-tooltip[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.53,2,.36,.85)}.tippy-tooltip[data-inertia][data-state=hidden]{transition-timing-function:ease}.tippy-arrow,.tippy-roundarrow{position:absolute;width:0;height:0}.tippy-roundarrow{width:24px;height:8px;fill:#333;pointer-events:none}.tippy-backdrop{position:absolute;will-change:transform;background-color:#333;border-radius:50%;width:calc(110% + 2rem);left:50%;top:50%;z-index:-1;transition:all cubic-bezier(.46,.1,.52,.98);-webkit-backface-visibility:hidden;backface-visibility:hidden}.tippy-backdrop:after{content:"";float:left;padding-top:100%}.tippy-backdrop+.tippy-content{transition-property:opacity}.tippy-backdrop+.tippy-content[data-state=visible]{opacity:1}.tippy-backdrop+.tippy-content[data-state=hidden]{opacity:0}@media (max-width:360px){.tippy-popper{max-width:96%;max-width:calc(100% - 20px)}}',pe='3.1.1',oe=Object.assign||function(e){for(var t,a=1;a<arguments.length;a++)for(var r in t=arguments[a],t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},ie={a11y:!0,content:'',placement:'top',livePlacement:!0,trigger:'mouseenter focus',hideOnClick:!0,animation:'shift-away',animateFill:!0,arrow:!1,delay:[0,20],duration:[325,275],interactive:!1,interactiveBorder:2,interactiveDebounce:0,theme:'dark',size:'regular',distance:10,offset:0,multiple:!1,followCursor:!1,inertia:!1,updateDuration:200,sticky:!1,appendTo:function(){return document.body},zIndex:9999,touchHold:!1,performance:!1,flip:!0,flipBehavior:'flip',arrowType:'sharp',arrowTransform:'',target:'',allowHTML:!0,showOnInit:!1,popperOptions:{},lazy:!0,touch:!0,wait:null,shouldPopperHideOnBlur:function(){return!0},onShow:function(){},onShown:function(){},onHide:function(){},onHidden:function(){},onMount:function(){}},ne=function(e){ie=oe({},ie,e)},se=['placement','popperOptions','flip','flipBehavior','distance','offset'],le='undefined'!=typeof window&&'undefined'!=typeof document,de=['Edge','Trident','Firefox'],ce=0,me=0;me<de.length;me+=1)if(le&&0<=navigator.userAgent.indexOf(de[me])){ce=1;break}var i=le&&window.Promise,fe=i?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},ce))}},he=le&&!!(window.MSInputMethodContext&&document.documentMode),be=le&&/MSIE 10/.test(navigator.userAgent),ye=function(e,t){if(!(e instanceof t))throw new TypeError('Cannot call a class as a function')},ue=function(){function e(e,t){for(var a,r=0;r<t.length;r++)a=t[r],a.enumerable=a.enumerable||!1,a.configurable=!0,'value'in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}return function(t,a,r){return a&&e(t.prototype,a),r&&e(t,r),t}}(),ge=function(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e},xe=Object.assign||function(e){for(var t,a=1;a<arguments.length;a++)for(var r in t=arguments[a],t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},we=['auto-start','auto','auto-end','top-start','top','top-end','right-start','right','right-end','bottom-end','bottom','bottom-start','left-end','left','left-start'],ve=we.slice(3),ke={FLIP:'flip',CLOCKWISE:'clockwise',COUNTERCLOCKWISE:'counterclockwise'},Ee=function(){function t(a,r){var p=this,o=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};ye(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(p.update)},this.update=fe(this.update.bind(this)),this.options=xe({},t.Defaults,o),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=a&&a.jquery?a[0]:a,this.popper=r&&r.jquery?r[0]:r,this.options.modifiers={},Object.keys(xe({},t.Defaults.modifiers,o.modifiers)).forEach(function(e){p.options.modifiers[e]=xe({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return xe({name:e},p.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(t){t.enabled&&e(t.onLoad)&&t.onLoad(p.reference,p.popper,p.options,t,p.state)}),this.update();var i=this.options.eventsEnabled;i&&this.enableEventListeners(),this.state.eventsEnabled=i}return ue(t,[{key:'update',value:function(){return P.call(this)}},{key:'destroy',value:function(){return I.call(this)}},{key:'enableEventListeners',value:function(){return B.call(this)}},{key:'disableEventListeners',value:function(){return W.call(this)}}]),t}();Ee.Utils=('undefined'==typeof window?global:window).PopperUtils,Ee.placements=we,Ee.Defaults={placement:'bottom',positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,a=t.split('-')[0],r=t.split('-')[1];if(r){var p=e.offsets,o=p.reference,i=p.popper,n=-1!==['bottom','top'].indexOf(a),s=n?'left':'top',l=n?'width':'height',d={start:ge({},s,o[s]),end:ge({},s,o[s]+o[l]-i[l])};e.offsets.popper=xe({},i,d[r])}return e}},offset:{order:200,enabled:!0,fn:G,offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var a=t.boundariesElement||o(e.instance.popper);e.instance.reference===a&&(a=o(a));var r=X('transform'),p=e.instance.popper.style,i=p.top,n=p.left,s=p[r];p.top='',p.left='',p[r]='';var l=v(e.instance.popper,e.instance.reference,t.padding,a,e.positionFixed);p.top=i,p.left=n,p[r]=s,t.boundaries=l;var d=t.priority,c=e.offsets.popper,m={primary:function(e){var a=c[e];return c[e]<l[e]&&!t.escapeWithReference&&(a=ae(c[e],l[e])),ge({},e,a)},secondary:function(e){var a='right'===e?'left':'top',r=c[a];return c[e]>l[e]&&!t.escapeWithReference&&(r=J(c[a],l[e]-('right'===e?c.width:c.height))),ge({},a,r)}};return d.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';c=xe({},c,m[t](e))}),e.offsets.popper=c,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,a=t.popper,r=t.reference,p=e.placement.split('-')[0],o=te,i=-1!==['top','bottom'].indexOf(p),n=i?'right':'bottom',s=i?'left':'top',l=i?'width':'height';return a[n]<o(r[s])&&(e.offsets.popper[s]=o(r[s])-a[l]),a[s]>o(r[n])&&(e.offsets.popper[s]=o(r[n])),e}},arrow:{order:500,enabled:!0,fn:function(e,a){var r;if(!F(e.instance.modifiers,'arrow','keepTogether'))return e;var p=a.element;if('string'==typeof p){if(p=e.instance.popper.querySelector(p),!p)return e;}else if(!e.instance.popper.contains(p))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var o=e.placement.split('-')[0],i=e.offsets,n=i.popper,s=i.reference,l=-1!==['left','right'].indexOf(o),d=l?'height':'width',c=l?'Top':'Left',m=c.toLowerCase(),f=l?'left':'top',h=l?'bottom':'right',y=L(p)[d];s[h]-y<n[m]&&(e.offsets.popper[m]-=n[m]-(s[h]-y)),s[m]+y>n[h]&&(e.offsets.popper[m]+=s[m]+y-n[h]),e.offsets.popper=b(e.offsets.popper);var u=s[m]+s[d]/2-y/2,g=t(e.instance.popper),x=parseFloat(g['margin'+c],10),w=parseFloat(g['border'+c+'Width'],10),v=u-e.offsets.popper[m]-x-w;return v=ae(J(n[d]-y,v),0),e.arrowElement=p,e.offsets.arrow=(r={},ge(r,m,ee(v)),ge(r,f,''),r),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(D(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var a=v(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),r=e.placement.split('-')[0],p=C(r),o=e.placement.split('-')[1]||'',i=[];switch(t.behavior){case ke.FLIP:i=[r,p];break;case ke.CLOCKWISE:i=q(r);break;case ke.COUNTERCLOCKWISE:i=q(r,!0);break;default:i=t.behavior;}return i.forEach(function(n,s){if(r!==n||i.length===s+1)return e;r=e.placement.split('-')[0],p=C(r);var l=e.offsets.popper,d=e.offsets.reference,c=te,m='left'===r&&c(l.right)>c(d.left)||'right'===r&&c(l.left)<c(d.right)||'top'===r&&c(l.bottom)>c(d.top)||'bottom'===r&&c(l.top)<c(d.bottom),f=c(l.left)<c(a.left),h=c(l.right)>c(a.right),b=c(l.top)<c(a.top),y=c(l.bottom)>c(a.bottom),u='left'===r&&f||'right'===r&&h||'top'===r&&b||'bottom'===r&&y,g=-1!==['top','bottom'].indexOf(r),x=!!t.flipVariations&&(g&&'start'===o&&f||g&&'end'===o&&h||!g&&'start'===o&&b||!g&&'end'===o&&y);(m||u||x)&&(e.flipped=!0,(m||u)&&(r=i[s+1]),x&&(o=V(o)),e.placement=r+(o?'-'+o:''),e.offsets.popper=xe({},e.offsets.popper,T(e.instance.popper,e.offsets.reference,e.placement)),e=S(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,a=t.split('-')[0],r=e.offsets,p=r.popper,o=r.reference,i=-1!==['left','right'].indexOf(a),n=-1===['top','left'].indexOf(a);return p[i?'left':'top']=o[a]-(n?p[i?'width':'height']:0),e.placement=C(t),e.offsets.popper=b(p),e}},hide:{order:800,enabled:!0,fn:function(e){if(!F(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,a=A(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottom<a.top||t.left>a.right||t.top>a.bottom||t.right<a.left){if(!0===e.hide)return e;e.hide=!0,e.attributes['x-out-of-boundaries']=''}else{if(!1===e.hide)return e;e.hide=!1,e.attributes['x-out-of-boundaries']=!1}return e}},computeStyle:{order:850,enabled:!0,fn:function(e,t){var a=t.x,r=t.y,p=e.offsets.popper,i=A(e.instance.modifiers,function(e){return'applyStyle'===e.name}).gpuAcceleration;void 0!==i&&console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');var n=void 0===i?t.gpuAcceleration:i,s=o(e.instance.popper),l=u(s),d={position:p.position},c={left:te(p.left),top:ee(p.top),bottom:ee(p.bottom),right:te(p.right)},m='bottom'===a?'top':'bottom',f='right'===r?'left':'right',h=X('transform'),b=void 0,y=void 0;if(y='bottom'==m?'HTML'===s.nodeName?-s.clientHeight+c.bottom:-l.height+c.bottom:c.top,b='right'==f?'HTML'===s.nodeName?-s.clientWidth+c.right:-l.width+c.right:c.left,n&&h)d[h]='translate3d('+b+'px, '+y+'px, 0)',d[m]=0,d[f]=0,d.willChange='transform';else{var g='bottom'==m?-1:1,x='right'==f?-1:1;d[m]=y*g,d[f]=b*x,d.willChange=m+', '+f}var w={"x-placement":e.placement};return e.attributes=xe({},w,e.attributes),e.styles=xe({},d,e.styles),e.arrowStyles=xe({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return _(e.instance.popper,e.styles),U(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&_(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,a,r,p){var o=O(p,t,e,a.positionFixed),i=E(a.placement,o,t,e,a.modifiers.flip.boundariesElement,a.modifiers.flip.padding);return t.setAttribute('x-placement',i),_(t,{position:a.positionFixed?'fixed':'absolute'}),a},gpuAcceleration:void 0}}};var Oe={POPPER:'.tippy-popper',TOOLTIP:'.tippy-tooltip',CONTENT:'.tippy-content',BACKDROP:'.tippy-backdrop',ARROW:'.tippy-arrow',ROUND_ARROW:'.tippy-roundarrow'},Le={x:!0},Ce='undefined'!=typeof window,Te=Ce&&'MutationObserver'in window,Ae=function(e){return[].slice.call(e)},Ye=function(e,t){t.content instanceof Element?(Ne(e,''),e.appendChild(t.content)):e[t.allowHTML?'innerHTML':'textContent']=t.content},Se=function(e){return!(e instanceof Element)||Qe.call(e,'a[href],area[href],button,details,input,textarea,select,iframe,[tabindex]')&&!e.hasAttribute('disabled')},Pe=function(e,t){e.filter(Boolean).forEach(function(e){e.style.transitionDuration=t+'ms'})},De=function(e){var t=function(t){return e.querySelector(t)};return{tooltip:t(Oe.TOOLTIP),backdrop:t(Oe.BACKDROP),content:t(Oe.CONTENT),arrow:t(Oe.ARROW)||t(Oe.ROUND_ARROW)}},Xe=function(e){return'[object Object]'==={}.toString.call(e)},Ie=function(){return document.createElement('div')},Ne=function(e,t){e[Le.x&&'innerHTML']=t instanceof Element?t[Le.x&&'innerHTML']:t},He=function(e){if(e instanceof Element||Xe(e))return[e];if(e instanceof NodeList)return Ae(e);if(Array.isArray(e))return e;try{return Ae(document.querySelectorAll(e))}catch(t){return[]}},Re=function(e){return!isNaN(e)&&!isNaN(parseFloat(e))},Be=function(e,t,a){if(Array.isArray(e)){var r=e[t];return null==r?a:r}return e},Me=function(e){var t=Ie();return'round'===e?(t.className='tippy-roundarrow',Ne(t,'<svg viewBox="0 0 24 8" xmlns="http://www.w3.org/2000/svg"><path d="M3 8s2.021-.015 5.253-4.218C9.584 2.051 10.797 1.007 12 1c1.203-.007 2.416 1.035 3.761 2.782C19.012 8.005 21 8 21 8H3z"/></svg>')):t.className='tippy-arrow',t},We=function(){var e=Ie();return e.className='tippy-backdrop',e.setAttribute('data-state','hidden'),e},ze=function(e,t){e.setAttribute('tabindex','-1'),t.setAttribute('data-interactive','')},_e=function(e,t){e.removeAttribute('tabindex'),t.removeAttribute('data-interactive')},Ue=function(e){e.setAttribute('data-inertia','')},Fe=function(e){e.removeAttribute('data-inertia')},Ve=function(e,t){var a=Ie();a.className='tippy-popper',a.setAttribute('role','tooltip'),a.id='tippy-'+e,a.style.zIndex=t.zIndex;var r=Ie();r.className='tippy-tooltip',r.setAttribute('data-size',t.size),r.setAttribute('data-animation',t.animation),r.setAttribute('data-state','hidden'),t.theme.split(' ').forEach(function(e){r.classList.add(e+'-theme')});var p=Ie();return p.className='tippy-content',p.setAttribute('data-state','hidden'),t.interactive&&ze(a,r),t.arrow&&r.appendChild(Me(t.arrowType)),t.animateFill&&(r.appendChild(We()),r.setAttribute('data-animatefill','')),t.inertia&&r.setAttribute('data-inertia',''),Ye(p,t),r.appendChild(p),a.appendChild(r),a.addEventListener('focusout',function(t){t.relatedTarget&&a._tippy&&!$e(t.relatedTarget,function(e){return e===a})&&t.relatedTarget!==a._tippy.reference&&a._tippy.props.shouldPopperHideOnBlur(t)&&a._tippy.hide()}),a},qe=function(e,t,a){var r=De(e),p=r.tooltip,o=r.content,i=r.backdrop,n=r.arrow;e.style.zIndex=a.zIndex,p.setAttribute('data-size',a.size),p.setAttribute('data-animation',a.animation),t.content!==a.content&&Ye(o,a),!t.animateFill&&a.animateFill?(p.appendChild(We()),p.setAttribute('data-animatefill','')):t.animateFill&&!a.animateFill&&(p.removeChild(i),p.removeAttribute('data-animatefill')),!t.arrow&&a.arrow?p.appendChild(Me(a.arrowType)):t.arrow&&!a.arrow&&p.removeChild(n),t.arrow&&a.arrow&&t.arrowType!==a.arrowType&&p.replaceChild(Me(a.arrowType),n),!t.interactive&&a.interactive?ze(e,p):t.interactive&&!a.interactive&&_e(e,p),!t.inertia&&a.inertia?Ue(p):t.inertia&&!a.inertia&&Fe(p),t.theme!==a.theme&&(t.theme.split(' ').forEach(function(e){p.classList.remove(e+'-theme')}),a.theme.split(' ').forEach(function(e){p.classList.add(e+'-theme')}))},je=function(e){Ae(document.querySelectorAll(Oe.POPPER)).forEach(function(t){var a=t._tippy;a&&!0===a.props.hideOnClick&&(!e||t!==e.popper)&&a.hide()})},Ke=function(e){return Object.keys(ie).reduce(function(t,a){var r=(e.getAttribute('data-tippy-'+a)||'').trim();return r?(t[a]='content'===a?r:'true'===r||'false'!==r&&(Re(r)?+r:'['===r[0]||'{'===r[0]?JSON.parse(r):r),t):t},{})},Ge=function(e){var t={isVirtual:!0,attributes:e.attributes||{},setAttribute:function(t,a){e.attributes[t]=a},getAttribute:function(t){return e.attributes[t]},removeAttribute:function(t){delete e.attributes[t]},hasAttribute:function(t){return t in e.attributes},addEventListener:function(){},removeEventListener:function(){},classList:{classNames:{},add:function(t){e.classList.classNames[t]=!0},remove:function(t){delete e.classList.classNames[t]},contains:function(t){return t in e.classList.classNames}}};for(var a in t)e[a]=t[a];return e},Qe=function(){if(Ce){var t=Element.prototype;return t.matches||t.matchesSelector||t.webkitMatchesSelector||t.mozMatchesSelector||t.msMatchesSelector}}(),Ze=function(e,t){return(Element.prototype.closest||function(e){for(var t=this;t;){if(Qe.call(t,e))return t;t=t.parentElement}}).call(e,t)},$e=function(e,t){for(;e;){if(t(e))return e;e=e.parentElement}},Je=function(e){var t=window.scrollX||window.pageXOffset,a=window.scrollY||window.pageYOffset;e.focus(),scroll(t,a)},et=function(e){void e.offsetHeight},tt=function(e,t){return(t?e:{X:'Y',Y:'X'}[e])||''},at=function(e,t,r,p){var o=t[0],i=t[1];if(!o&&!i)return'';var n={scale:function(){return i?r?o+', '+i:i+', '+o:''+o}(),translate:function(){return i?r?p?o+'px, '+-i+'px':o+'px, '+i+'px':p?-i+'px, '+o+'px':i+'px, '+o+'px':p?-o+'px':o+'px'}()};return n[e]},rt=function(e,t){var a=e.match(new RegExp(t+'([XY])'));return a?a[1]:''},pt=function(e,t){var a=e.match(t);return a?a[1].split(',').map(parseFloat):[]},ot={translate:/translateX?Y?\(([^)]+)\)/,scale:/scaleX?Y?\(([^)]+)\)/},it=function(e,t){var a=mt(Ze(e,Oe.POPPER)),r='top'===a||'bottom'===a,p='right'===a||'bottom'===a,o={translate:{axis:rt(t,'translate'),numbers:pt(t,ot.translate)},scale:{axis:rt(t,'scale'),numbers:pt(t,ot.scale)}},i=t.replace(ot.translate,'translate'+tt(o.translate.axis,r)+'('+at('translate',o.translate.numbers,r,p)+')').replace(ot.scale,'scale'+tt(o.scale.axis,r)+'('+at('scale',o.scale.numbers,r,p)+')');e.style['undefined'==typeof document.body.style.transform?'webkitTransform':'transform']=i},nt=function(e,t){e.filter(Boolean).forEach(function(e){e.setAttribute('data-state',t)})},st=function(e,t){var a=e.popper,r=e.options,p=r.onCreate,o=r.onUpdate;r.onCreate=r.onUpdate=function(){et(a),t(),o(),r.onCreate=p,r.onUpdate=o}},lt=function(e){setTimeout(e,1)},dt=function(e,t,a,r){if(!e)return!0;var p=a.clientX,o=a.clientY,i=r.interactiveBorder,n=r.distance,s=t.top-o>('top'===e?i+n:i),l=o-t.bottom>('bottom'===e?i+n:i),d=t.left-p>('left'===e?i+n:i),c=p-t.right>('right'===e?i+n:i);return s||l||d||c},ct=function(e,t){return-(e-t)+'px'},mt=function(e){var t=e.getAttribute('x-placement');return t?t.split('-')[0]:''},ft=function(e,t){var a=oe({},t,t.performance?{}:Ke(e));return a.arrow&&(a.animateFill=!1),'function'==typeof a.appendTo&&(a.appendTo=t.appendTo(e)),'function'==typeof a.content&&(a.content=t.content(e)),a},ht=function(e,t,a){e[t+'EventListener']('transitionend',a)},bt=function(e,t){var a;return function(){var r=this,p=arguments;clearTimeout(a),a=setTimeout(function(){return e.apply(r,p)},t)}},yt=function(e,t){for(var a in e||{})if(!(a in t))throw Error('[tippy]: `'+a+'` is not a valid option')},ut=Ce?navigator:{},gt=Ce?window:{},xt=/MSIE |Trident\//.test(ut.userAgent),wt=/iPhone|iPad|iPod/.test(ut.platform)&&!gt.MSStream,vt='ontouchstart'in gt,kt=!1,Et=function(){kt||(kt=!0,wt&&document.body.classList.add('tippy-iOS'),window.performance&&document.addEventListener('mousemove',Lt))},Ot=0,Lt=function e(){var t=performance.now();20>t-Ot&&(kt=!1,document.removeEventListener('mousemove',e),!wt&&document.body.classList.remove('tippy-iOS')),Ot=t},Ct=function(e){var t=e.target;if(!(t instanceof Element))return je();var a=Ze(t,Oe.POPPER);if(!(a&&a._tippy&&a._tippy.props.interactive)){var r=$e(t,function(e){return e._tippy&&e._tippy.reference===e});if(r){var p=r._tippy,o=-1<p.props.trigger.indexOf('click');if(kt||o)return je(p);if(!0!==p.props.hideOnClick||o)return;p.clearDelayTimeouts()}je()}},Tt=function(){var e=document,t=e.activeElement;t&&t.blur&&t._tippy&&t.blur()},At=function(){Ae(document.querySelectorAll(Oe.POPPER)).forEach(function(e){var t=e._tippy;t.props.livePlacement||t.popperInstance.scheduleUpdate()})},Yt=1,St=!1,Pt=!1;$.version=pe,$.defaults=ie,$.one=function(e,t){return $(e,t,!0).instances[0]},$.setDefaults=function(e){ne(e),$.defaults=ie},$.disableAnimations=function(){$.setDefaults({duration:0,updateDuration:0,animateFill:!1})},$.hideAllPoppers=je,$.useCapture=function(){Pt=!0};return Ce&&setTimeout(function(){Ae(document.querySelectorAll('[data-tippy]')).forEach(function(e){var t=e.getAttribute('data-tippy');t&&$(e,{content:t})})}),function(e){if(Te){var t=document.createElement('style');t.type='text/css',t.textContent=e,document.head.insertBefore(t,document.head.firstChild)}}(re),$});
|
1403
|
+
//# sourceMappingURL=tippy.all.min.js.map
|
1404
|
+
|
1405
|
+
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(43)))
|
1406
|
+
|
1407
|
+
/***/ }),
|
1408
|
+
/* 14 */
|
1409
|
+
/***/ (function(module, exports, __webpack_require__) {
|
1410
|
+
|
1411
|
+
"use strict";
|
1412
|
+
|
1413
|
+
|
1414
|
+
Object.defineProperty(exports, "__esModule", {
|
1415
|
+
value: true
|
1416
|
+
});
|
1417
|
+
|
1418
|
+
var _evented = __webpack_require__(4);
|
1419
|
+
|
1420
|
+
var _step = __webpack_require__(7);
|
1421
|
+
|
1422
|
+
var _tour = __webpack_require__(45);
|
1423
|
+
|
1424
|
+
Object.assign(_tour.Shepherd, {
|
1425
|
+
Tour: _tour.Tour,
|
1426
|
+
Step: _step.Step,
|
1427
|
+
Evented: _evented.Evented
|
1428
|
+
});
|
1429
|
+
exports.default = _tour.Shepherd;
|
1430
|
+
module.exports = exports.default;
|
1431
|
+
|
1432
|
+
/***/ }),
|
1433
|
+
/* 15 */
|
1434
|
+
/***/ (function(module, exports, __webpack_require__) {
|
1435
|
+
|
1436
|
+
var baseSlice = __webpack_require__(16),
|
1437
|
+
toInteger = __webpack_require__(17);
|
1438
|
+
|
1439
|
+
/**
|
1440
|
+
* Creates a slice of `array` with `n` elements dropped from the beginning.
|
1441
|
+
*
|
1442
|
+
* @static
|
1443
|
+
* @memberOf _
|
1444
|
+
* @since 0.5.0
|
1445
|
+
* @category Array
|
1446
|
+
* @param {Array} array The array to query.
|
1447
|
+
* @param {number} [n=1] The number of elements to drop.
|
1448
|
+
* @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
|
1449
|
+
* @returns {Array} Returns the slice of `array`.
|
1450
|
+
* @example
|
1451
|
+
*
|
1452
|
+
* _.drop([1, 2, 3]);
|
1453
|
+
* // => [2, 3]
|
1454
|
+
*
|
1455
|
+
* _.drop([1, 2, 3], 2);
|
1456
|
+
* // => [3]
|
1457
|
+
*
|
1458
|
+
* _.drop([1, 2, 3], 5);
|
1459
|
+
* // => []
|
1460
|
+
*
|
1461
|
+
* _.drop([1, 2, 3], 0);
|
1462
|
+
* // => [1, 2, 3]
|
1463
|
+
*/
|
1464
|
+
function drop(array, n, guard) {
|
1465
|
+
var length = array == null ? 0 : array.length;
|
1466
|
+
if (!length) {
|
1467
|
+
return [];
|
1468
|
+
}
|
1469
|
+
n = (guard || n === undefined) ? 1 : toInteger(n);
|
1470
|
+
return baseSlice(array, n < 0 ? 0 : n, length);
|
1471
|
+
}
|
172
1472
|
|
173
|
-
|
174
|
-
this.destroy();
|
1473
|
+
module.exports = drop;
|
175
1474
|
|
176
|
-
this.id = this.options.id || this.id || 'step-' + uniqueId();
|
177
1475
|
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
1476
|
+
/***/ }),
|
1477
|
+
/* 16 */
|
1478
|
+
/***/ (function(module, exports) {
|
1479
|
+
|
1480
|
+
/**
|
1481
|
+
* The base implementation of `_.slice` without an iteratee call guard.
|
1482
|
+
*
|
1483
|
+
* @private
|
1484
|
+
* @param {Array} array The array to slice.
|
1485
|
+
* @param {number} [start=0] The start position.
|
1486
|
+
* @param {number} [end=array.length] The end position.
|
1487
|
+
* @returns {Array} Returns the slice of `array`.
|
1488
|
+
*/
|
1489
|
+
function baseSlice(array, start, end) {
|
1490
|
+
var index = -1,
|
1491
|
+
length = array.length;
|
1492
|
+
|
1493
|
+
if (start < 0) {
|
1494
|
+
start = -start > length ? 0 : (length + start);
|
1495
|
+
}
|
1496
|
+
end = end > length ? length : end;
|
1497
|
+
if (end < 0) {
|
1498
|
+
end += length;
|
1499
|
+
}
|
1500
|
+
length = start > end ? 0 : ((end - start) >>> 0);
|
1501
|
+
start >>>= 0;
|
1502
|
+
|
1503
|
+
var result = Array(length);
|
1504
|
+
while (++index < length) {
|
1505
|
+
result[index] = array[index + start];
|
1506
|
+
}
|
1507
|
+
return result;
|
1508
|
+
}
|
1509
|
+
|
1510
|
+
module.exports = baseSlice;
|
1511
|
+
|
1512
|
+
|
1513
|
+
/***/ }),
|
1514
|
+
/* 17 */
|
1515
|
+
/***/ (function(module, exports) {
|
1516
|
+
|
1517
|
+
/**
|
1518
|
+
* This method returns the first argument it receives.
|
1519
|
+
*
|
1520
|
+
* @static
|
1521
|
+
* @since 0.1.0
|
1522
|
+
* @memberOf _
|
1523
|
+
* @category Util
|
1524
|
+
* @param {*} value Any value.
|
1525
|
+
* @returns {*} Returns `value`.
|
1526
|
+
* @example
|
1527
|
+
*
|
1528
|
+
* var object = { 'a': 1 };
|
1529
|
+
*
|
1530
|
+
* console.log(_.identity(object) === object);
|
1531
|
+
* // => true
|
1532
|
+
*/
|
1533
|
+
function identity(value) {
|
1534
|
+
return value;
|
1535
|
+
}
|
1536
|
+
|
1537
|
+
module.exports = identity;
|
1538
|
+
|
1539
|
+
|
1540
|
+
/***/ }),
|
1541
|
+
/* 18 */
|
1542
|
+
/***/ (function(module, exports) {
|
1543
|
+
|
1544
|
+
/**
|
1545
|
+
* Checks if `value` is the
|
1546
|
+
* [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
|
1547
|
+
* of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
|
1548
|
+
*
|
1549
|
+
* @static
|
1550
|
+
* @memberOf _
|
1551
|
+
* @since 0.1.0
|
1552
|
+
* @category Lang
|
1553
|
+
* @param {*} value The value to check.
|
1554
|
+
* @returns {boolean} Returns `true` if `value` is an object, else `false`.
|
1555
|
+
* @example
|
1556
|
+
*
|
1557
|
+
* _.isObject({});
|
1558
|
+
* // => true
|
1559
|
+
*
|
1560
|
+
* _.isObject([1, 2, 3]);
|
1561
|
+
* // => true
|
1562
|
+
*
|
1563
|
+
* _.isObject(_.noop);
|
1564
|
+
* // => true
|
1565
|
+
*
|
1566
|
+
* _.isObject(null);
|
1567
|
+
* // => false
|
1568
|
+
*/
|
1569
|
+
function isObject(value) {
|
1570
|
+
var type = typeof value;
|
1571
|
+
return value != null && (type == 'object' || type == 'function');
|
1572
|
+
}
|
1573
|
+
|
1574
|
+
module.exports = isObject;
|
1575
|
+
|
1576
|
+
|
1577
|
+
/***/ }),
|
1578
|
+
/* 19 */
|
1579
|
+
/***/ (function(module, exports, __webpack_require__) {
|
1580
|
+
|
1581
|
+
var overArg = __webpack_require__(6);
|
1582
|
+
|
1583
|
+
/* Built-in method references for those with the same name as other `lodash` methods. */
|
1584
|
+
var nativeKeys = overArg(Object.keys, Object);
|
1585
|
+
|
1586
|
+
module.exports = nativeKeys;
|
1587
|
+
|
1588
|
+
|
1589
|
+
/***/ }),
|
1590
|
+
/* 20 */
|
1591
|
+
/***/ (function(module, exports) {
|
1592
|
+
|
1593
|
+
/** Used for built-in method references. */
|
1594
|
+
var objectProto = Object.prototype;
|
1595
|
+
|
1596
|
+
/**
|
1597
|
+
* Used to resolve the
|
1598
|
+
* [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
|
1599
|
+
* of values.
|
1600
|
+
*/
|
1601
|
+
var nativeObjectToString = objectProto.toString;
|
1602
|
+
|
1603
|
+
/**
|
1604
|
+
* Converts `value` to a string using `Object.prototype.toString`.
|
1605
|
+
*
|
1606
|
+
* @private
|
1607
|
+
* @param {*} value The value to convert.
|
1608
|
+
* @returns {string} Returns the converted string.
|
1609
|
+
*/
|
1610
|
+
function objectToString(value) {
|
1611
|
+
return nativeObjectToString.call(value);
|
1612
|
+
}
|
1613
|
+
|
1614
|
+
module.exports = objectToString;
|
1615
|
+
|
1616
|
+
|
1617
|
+
/***/ }),
|
1618
|
+
/* 21 */
|
1619
|
+
/***/ (function(module, exports) {
|
1620
|
+
|
1621
|
+
/**
|
1622
|
+
* This method returns `false`.
|
1623
|
+
*
|
1624
|
+
* @static
|
1625
|
+
* @memberOf _
|
1626
|
+
* @since 4.13.0
|
1627
|
+
* @category Util
|
1628
|
+
* @returns {boolean} Returns `false`.
|
1629
|
+
* @example
|
1630
|
+
*
|
1631
|
+
* _.times(2, _.stubFalse);
|
1632
|
+
* // => [false, false]
|
1633
|
+
*/
|
1634
|
+
function stubFalse() {
|
1635
|
+
return false;
|
1636
|
+
}
|
1637
|
+
|
1638
|
+
module.exports = stubFalse;
|
1639
|
+
|
1640
|
+
|
1641
|
+
/***/ }),
|
1642
|
+
/* 22 */
|
1643
|
+
/***/ (function(module, exports, __webpack_require__) {
|
1644
|
+
|
1645
|
+
var isFunction = __webpack_require__(5),
|
1646
|
+
isLength = __webpack_require__(23);
|
1647
|
+
|
1648
|
+
/**
|
1649
|
+
* Checks if `value` is array-like. A value is considered array-like if it's
|
1650
|
+
* not a function and has a `value.length` that's an integer greater than or
|
1651
|
+
* equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
|
1652
|
+
*
|
1653
|
+
* @static
|
1654
|
+
* @memberOf _
|
1655
|
+
* @since 4.0.0
|
1656
|
+
* @category Lang
|
1657
|
+
* @param {*} value The value to check.
|
1658
|
+
* @returns {boolean} Returns `true` if `value` is array-like, else `false`.
|
1659
|
+
* @example
|
1660
|
+
*
|
1661
|
+
* _.isArrayLike([1, 2, 3]);
|
1662
|
+
* // => true
|
1663
|
+
*
|
1664
|
+
* _.isArrayLike(document.body.children);
|
1665
|
+
* // => true
|
1666
|
+
*
|
1667
|
+
* _.isArrayLike('abc');
|
1668
|
+
* // => true
|
1669
|
+
*
|
1670
|
+
* _.isArrayLike(_.noop);
|
1671
|
+
* // => false
|
1672
|
+
*/
|
1673
|
+
function isArrayLike(value) {
|
1674
|
+
return value != null && isLength(value.length) && !isFunction(value);
|
1675
|
+
}
|
1676
|
+
|
1677
|
+
module.exports = isArrayLike;
|
1678
|
+
|
1679
|
+
|
1680
|
+
/***/ }),
|
1681
|
+
/* 23 */
|
1682
|
+
/***/ (function(module, exports) {
|
1683
|
+
|
1684
|
+
/** Used as references for various `Number` constants. */
|
1685
|
+
var MAX_SAFE_INTEGER = 9007199254740991;
|
1686
|
+
|
1687
|
+
/**
|
1688
|
+
* Checks if `value` is a valid array-like length.
|
1689
|
+
*
|
1690
|
+
* **Note:** This method is loosely based on
|
1691
|
+
* [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
|
1692
|
+
*
|
1693
|
+
* @static
|
1694
|
+
* @memberOf _
|
1695
|
+
* @since 4.0.0
|
1696
|
+
* @category Lang
|
1697
|
+
* @param {*} value The value to check.
|
1698
|
+
* @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
|
1699
|
+
* @example
|
1700
|
+
*
|
1701
|
+
* _.isLength(3);
|
1702
|
+
* // => true
|
1703
|
+
*
|
1704
|
+
* _.isLength(Number.MIN_VALUE);
|
1705
|
+
* // => false
|
1706
|
+
*
|
1707
|
+
* _.isLength(Infinity);
|
1708
|
+
* // => false
|
1709
|
+
*
|
1710
|
+
* _.isLength('3');
|
1711
|
+
* // => false
|
1712
|
+
*/
|
1713
|
+
function isLength(value) {
|
1714
|
+
return typeof value == 'number' &&
|
1715
|
+
value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
|
1716
|
+
}
|
1717
|
+
|
1718
|
+
module.exports = isLength;
|
1719
|
+
|
1720
|
+
|
1721
|
+
/***/ }),
|
1722
|
+
/* 24 */
|
1723
|
+
/***/ (function(module, exports) {
|
1724
|
+
|
1725
|
+
/**
|
1726
|
+
* This method returns `false`.
|
1727
|
+
*
|
1728
|
+
* @static
|
1729
|
+
* @memberOf _
|
1730
|
+
* @since 4.13.0
|
1731
|
+
* @category Util
|
1732
|
+
* @returns {boolean} Returns `false`.
|
1733
|
+
* @example
|
1734
|
+
*
|
1735
|
+
* _.times(2, _.stubFalse);
|
1736
|
+
* // => [false, false]
|
1737
|
+
*/
|
1738
|
+
function stubFalse() {
|
1739
|
+
return false;
|
1740
|
+
}
|
1741
|
+
|
1742
|
+
module.exports = stubFalse;
|
1743
|
+
|
1744
|
+
|
1745
|
+
/***/ }),
|
1746
|
+
/* 25 */
|
1747
|
+
/***/ (function(module, exports) {
|
1748
|
+
|
1749
|
+
/**
|
1750
|
+
* This method returns `false`.
|
1751
|
+
*
|
1752
|
+
* @static
|
1753
|
+
* @memberOf _
|
1754
|
+
* @since 4.13.0
|
1755
|
+
* @category Util
|
1756
|
+
* @returns {boolean} Returns `false`.
|
1757
|
+
* @example
|
1758
|
+
*
|
1759
|
+
* _.times(2, _.stubFalse);
|
1760
|
+
* // => [false, false]
|
1761
|
+
*/
|
1762
|
+
function stubFalse() {
|
1763
|
+
return false;
|
1764
|
+
}
|
1765
|
+
|
1766
|
+
module.exports = stubFalse;
|
1767
|
+
|
1768
|
+
|
1769
|
+
/***/ }),
|
1770
|
+
/* 26 */
|
1771
|
+
/***/ (function(module, exports) {
|
1772
|
+
|
1773
|
+
/**
|
1774
|
+
* This method returns `false`.
|
1775
|
+
*
|
1776
|
+
* @static
|
1777
|
+
* @memberOf _
|
1778
|
+
* @since 4.13.0
|
1779
|
+
* @category Util
|
1780
|
+
* @returns {boolean} Returns `false`.
|
1781
|
+
* @example
|
1782
|
+
*
|
1783
|
+
* _.times(2, _.stubFalse);
|
1784
|
+
* // => [false, false]
|
1785
|
+
*/
|
1786
|
+
function stubFalse() {
|
1787
|
+
return false;
|
1788
|
+
}
|
1789
|
+
|
1790
|
+
module.exports = stubFalse;
|
1791
|
+
|
1792
|
+
|
1793
|
+
/***/ }),
|
1794
|
+
/* 27 */
|
1795
|
+
/***/ (function(module, exports, __webpack_require__) {
|
1796
|
+
|
1797
|
+
var isObjectLike = __webpack_require__(1),
|
1798
|
+
isPlainObject = __webpack_require__(28);
|
1799
|
+
|
1800
|
+
/**
|
1801
|
+
* Checks if `value` is likely a DOM element.
|
1802
|
+
*
|
1803
|
+
* @static
|
1804
|
+
* @memberOf _
|
1805
|
+
* @since 0.1.0
|
1806
|
+
* @category Lang
|
1807
|
+
* @param {*} value The value to check.
|
1808
|
+
* @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.
|
1809
|
+
* @example
|
1810
|
+
*
|
1811
|
+
* _.isElement(document.body);
|
1812
|
+
* // => true
|
1813
|
+
*
|
1814
|
+
* _.isElement('<body>');
|
1815
|
+
* // => false
|
1816
|
+
*/
|
1817
|
+
function isElement(value) {
|
1818
|
+
return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);
|
1819
|
+
}
|
1820
|
+
|
1821
|
+
module.exports = isElement;
|
1822
|
+
|
1823
|
+
|
1824
|
+
/***/ }),
|
1825
|
+
/* 28 */
|
1826
|
+
/***/ (function(module, exports, __webpack_require__) {
|
1827
|
+
|
1828
|
+
var baseGetTag = __webpack_require__(3),
|
1829
|
+
getPrototype = __webpack_require__(29),
|
1830
|
+
isObjectLike = __webpack_require__(1);
|
1831
|
+
|
1832
|
+
/** `Object#toString` result references. */
|
1833
|
+
var objectTag = '[object Object]';
|
1834
|
+
|
1835
|
+
/** Used for built-in method references. */
|
1836
|
+
var funcProto = Function.prototype,
|
1837
|
+
objectProto = Object.prototype;
|
1838
|
+
|
1839
|
+
/** Used to resolve the decompiled source of functions. */
|
1840
|
+
var funcToString = funcProto.toString;
|
1841
|
+
|
1842
|
+
/** Used to check objects for own properties. */
|
1843
|
+
var hasOwnProperty = objectProto.hasOwnProperty;
|
1844
|
+
|
1845
|
+
/** Used to infer the `Object` constructor. */
|
1846
|
+
var objectCtorString = funcToString.call(Object);
|
1847
|
+
|
1848
|
+
/**
|
1849
|
+
* Checks if `value` is a plain object, that is, an object created by the
|
1850
|
+
* `Object` constructor or one with a `[[Prototype]]` of `null`.
|
1851
|
+
*
|
1852
|
+
* @static
|
1853
|
+
* @memberOf _
|
1854
|
+
* @since 0.8.0
|
1855
|
+
* @category Lang
|
1856
|
+
* @param {*} value The value to check.
|
1857
|
+
* @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
|
1858
|
+
* @example
|
1859
|
+
*
|
1860
|
+
* function Foo() {
|
1861
|
+
* this.a = 1;
|
1862
|
+
* }
|
1863
|
+
*
|
1864
|
+
* _.isPlainObject(new Foo);
|
1865
|
+
* // => false
|
1866
|
+
*
|
1867
|
+
* _.isPlainObject([1, 2, 3]);
|
1868
|
+
* // => false
|
1869
|
+
*
|
1870
|
+
* _.isPlainObject({ 'x': 0, 'y': 0 });
|
1871
|
+
* // => true
|
1872
|
+
*
|
1873
|
+
* _.isPlainObject(Object.create(null));
|
1874
|
+
* // => true
|
1875
|
+
*/
|
1876
|
+
function isPlainObject(value) {
|
1877
|
+
if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
|
1878
|
+
return false;
|
1879
|
+
}
|
1880
|
+
var proto = getPrototype(value);
|
1881
|
+
if (proto === null) {
|
1882
|
+
return true;
|
1883
|
+
}
|
1884
|
+
var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
|
1885
|
+
return typeof Ctor == 'function' && Ctor instanceof Ctor &&
|
1886
|
+
funcToString.call(Ctor) == objectCtorString;
|
1887
|
+
}
|
1888
|
+
|
1889
|
+
module.exports = isPlainObject;
|
1890
|
+
|
1891
|
+
|
1892
|
+
/***/ }),
|
1893
|
+
/* 29 */
|
1894
|
+
/***/ (function(module, exports, __webpack_require__) {
|
1895
|
+
|
1896
|
+
var overArg = __webpack_require__(6);
|
1897
|
+
|
1898
|
+
/** Built-in value references. */
|
1899
|
+
var getPrototype = overArg(Object.getPrototypeOf, Object);
|
1900
|
+
|
1901
|
+
module.exports = getPrototype;
|
1902
|
+
|
1903
|
+
|
1904
|
+
/***/ }),
|
1905
|
+
/* 30 */
|
1906
|
+
/***/ (function(module, exports, __webpack_require__) {
|
1907
|
+
|
1908
|
+
var baseFor = __webpack_require__(31),
|
1909
|
+
keys = __webpack_require__(33);
|
1910
|
+
|
1911
|
+
/**
|
1912
|
+
* The base implementation of `_.forOwn` without support for iteratee shorthands.
|
1913
|
+
*
|
1914
|
+
* @private
|
1915
|
+
* @param {Object} object The object to iterate over.
|
1916
|
+
* @param {Function} iteratee The function invoked per iteration.
|
1917
|
+
* @returns {Object} Returns `object`.
|
1918
|
+
*/
|
1919
|
+
function baseForOwn(object, iteratee) {
|
1920
|
+
return object && baseFor(object, iteratee, keys);
|
1921
|
+
}
|
1922
|
+
|
1923
|
+
module.exports = baseForOwn;
|
1924
|
+
|
1925
|
+
|
1926
|
+
/***/ }),
|
1927
|
+
/* 31 */
|
1928
|
+
/***/ (function(module, exports, __webpack_require__) {
|
1929
|
+
|
1930
|
+
var createBaseFor = __webpack_require__(32);
|
1931
|
+
|
1932
|
+
/**
|
1933
|
+
* The base implementation of `baseForOwn` which iterates over `object`
|
1934
|
+
* properties returned by `keysFunc` and invokes `iteratee` for each property.
|
1935
|
+
* Iteratee functions may exit iteration early by explicitly returning `false`.
|
1936
|
+
*
|
1937
|
+
* @private
|
1938
|
+
* @param {Object} object The object to iterate over.
|
1939
|
+
* @param {Function} iteratee The function invoked per iteration.
|
1940
|
+
* @param {Function} keysFunc The function to get the keys of `object`.
|
1941
|
+
* @returns {Object} Returns `object`.
|
1942
|
+
*/
|
1943
|
+
var baseFor = createBaseFor();
|
1944
|
+
|
1945
|
+
module.exports = baseFor;
|
1946
|
+
|
1947
|
+
|
1948
|
+
/***/ }),
|
1949
|
+
/* 32 */
|
1950
|
+
/***/ (function(module, exports) {
|
1951
|
+
|
1952
|
+
/**
|
1953
|
+
* Creates a base function for methods like `_.forIn` and `_.forOwn`.
|
1954
|
+
*
|
1955
|
+
* @private
|
1956
|
+
* @param {boolean} [fromRight] Specify iterating from right to left.
|
1957
|
+
* @returns {Function} Returns the new base function.
|
1958
|
+
*/
|
1959
|
+
function createBaseFor(fromRight) {
|
1960
|
+
return function(object, iteratee, keysFunc) {
|
1961
|
+
var index = -1,
|
1962
|
+
iterable = Object(object),
|
1963
|
+
props = keysFunc(object),
|
1964
|
+
length = props.length;
|
1965
|
+
|
1966
|
+
while (length--) {
|
1967
|
+
var key = props[fromRight ? length : ++index];
|
1968
|
+
if (iteratee(iterable[key], key, iterable) === false) {
|
1969
|
+
break;
|
186
1970
|
}
|
1971
|
+
}
|
1972
|
+
return object;
|
1973
|
+
};
|
1974
|
+
}
|
1975
|
+
|
1976
|
+
module.exports = createBaseFor;
|
1977
|
+
|
1978
|
+
|
1979
|
+
/***/ }),
|
1980
|
+
/* 33 */
|
1981
|
+
/***/ (function(module, exports, __webpack_require__) {
|
1982
|
+
|
1983
|
+
var overArg = __webpack_require__(6);
|
1984
|
+
|
1985
|
+
/* Built-in method references for those with the same name as other `lodash` methods. */
|
1986
|
+
var nativeKeys = overArg(Object.keys, Object);
|
1987
|
+
|
1988
|
+
module.exports = nativeKeys;
|
1989
|
+
|
187
1990
|
|
188
|
-
|
1991
|
+
/***/ }),
|
1992
|
+
/* 34 */
|
1993
|
+
/***/ (function(module, exports) {
|
1994
|
+
|
1995
|
+
/**
|
1996
|
+
* This method returns the first argument it receives.
|
1997
|
+
*
|
1998
|
+
* @static
|
1999
|
+
* @since 0.1.0
|
2000
|
+
* @memberOf _
|
2001
|
+
* @category Util
|
2002
|
+
* @param {*} value Any value.
|
2003
|
+
* @returns {*} Returns `value`.
|
2004
|
+
* @example
|
2005
|
+
*
|
2006
|
+
* var object = { 'a': 1 };
|
2007
|
+
*
|
2008
|
+
* console.log(_.identity(object) === object);
|
2009
|
+
* // => true
|
2010
|
+
*/
|
2011
|
+
function identity(value) {
|
2012
|
+
return value;
|
2013
|
+
}
|
2014
|
+
|
2015
|
+
module.exports = identity;
|
2016
|
+
|
2017
|
+
|
2018
|
+
/***/ }),
|
2019
|
+
/* 35 */
|
2020
|
+
/***/ (function(module, exports) {
|
2021
|
+
|
2022
|
+
if (!Element.prototype.matches) {
|
2023
|
+
Element.prototype.matches =
|
2024
|
+
Element.prototype.matchesSelector ||
|
2025
|
+
Element.prototype.msMatchesSelector ||
|
2026
|
+
Element.prototype.webkitMatchesSelector;
|
2027
|
+
}
|
189
2028
|
|
190
|
-
var buttonsJson = JSON.stringify(this.options.buttons);
|
191
|
-
var buttonsAreDefault = isUndefined(buttonsJson) || buttonsJson === "true";
|
192
2029
|
|
193
|
-
|
2030
|
+
/***/ }),
|
2031
|
+
/* 36 */
|
2032
|
+
/***/ (function(module, exports, __webpack_require__) {
|
2033
|
+
|
2034
|
+
var assignValue = __webpack_require__(37),
|
2035
|
+
baseZipObject = __webpack_require__(42);
|
2036
|
+
|
2037
|
+
/**
|
2038
|
+
* This method is like `_.fromPairs` except that it accepts two arrays,
|
2039
|
+
* one of property identifiers and one of corresponding values.
|
2040
|
+
*
|
2041
|
+
* @static
|
2042
|
+
* @memberOf _
|
2043
|
+
* @since 0.4.0
|
2044
|
+
* @category Array
|
2045
|
+
* @param {Array} [props=[]] The property identifiers.
|
2046
|
+
* @param {Array} [values=[]] The property values.
|
2047
|
+
* @returns {Object} Returns the new object.
|
2048
|
+
* @example
|
2049
|
+
*
|
2050
|
+
* _.zipObject(['a', 'b'], [1, 2]);
|
2051
|
+
* // => { 'a': 1, 'b': 2 }
|
2052
|
+
*/
|
2053
|
+
function zipObject(props, values) {
|
2054
|
+
return baseZipObject(props || [], values || [], assignValue);
|
2055
|
+
}
|
194
2056
|
|
195
|
-
|
2057
|
+
module.exports = zipObject;
|
2058
|
+
|
2059
|
+
|
2060
|
+
/***/ }),
|
2061
|
+
/* 37 */
|
2062
|
+
/***/ (function(module, exports, __webpack_require__) {
|
2063
|
+
|
2064
|
+
var baseAssignValue = __webpack_require__(38),
|
2065
|
+
eq = __webpack_require__(41);
|
2066
|
+
|
2067
|
+
/** Used for built-in method references. */
|
2068
|
+
var objectProto = Object.prototype;
|
2069
|
+
|
2070
|
+
/** Used to check objects for own properties. */
|
2071
|
+
var hasOwnProperty = objectProto.hasOwnProperty;
|
2072
|
+
|
2073
|
+
/**
|
2074
|
+
* Assigns `value` to `key` of `object` if the existing value is not equivalent
|
2075
|
+
* using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
|
2076
|
+
* for equality comparisons.
|
2077
|
+
*
|
2078
|
+
* @private
|
2079
|
+
* @param {Object} object The object to modify.
|
2080
|
+
* @param {string} key The key of the property to assign.
|
2081
|
+
* @param {*} value The value to assign.
|
2082
|
+
*/
|
2083
|
+
function assignValue(object, key, value) {
|
2084
|
+
var objValue = object[key];
|
2085
|
+
if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||
|
2086
|
+
(value === undefined && !(key in object))) {
|
2087
|
+
baseAssignValue(object, key, value);
|
2088
|
+
}
|
2089
|
+
}
|
196
2090
|
|
197
|
-
|
2091
|
+
module.exports = assignValue;
|
2092
|
+
|
2093
|
+
|
2094
|
+
/***/ }),
|
2095
|
+
/* 38 */
|
2096
|
+
/***/ (function(module, exports, __webpack_require__) {
|
2097
|
+
|
2098
|
+
var defineProperty = __webpack_require__(39);
|
2099
|
+
|
2100
|
+
/**
|
2101
|
+
* The base implementation of `assignValue` and `assignMergeValue` without
|
2102
|
+
* value checks.
|
2103
|
+
*
|
2104
|
+
* @private
|
2105
|
+
* @param {Object} object The object to modify.
|
2106
|
+
* @param {string} key The key of the property to assign.
|
2107
|
+
* @param {*} value The value to assign.
|
2108
|
+
*/
|
2109
|
+
function baseAssignValue(object, key, value) {
|
2110
|
+
if (key == '__proto__' && defineProperty) {
|
2111
|
+
defineProperty(object, key, {
|
2112
|
+
'configurable': true,
|
2113
|
+
'enumerable': true,
|
2114
|
+
'value': value,
|
2115
|
+
'writable': true
|
2116
|
+
});
|
2117
|
+
} else {
|
2118
|
+
object[key] = value;
|
2119
|
+
}
|
2120
|
+
}
|
198
2121
|
|
199
|
-
|
200
|
-
if (buttonsAreDefault) {
|
201
|
-
this.options.buttons = [{
|
202
|
-
text: 'Next',
|
203
|
-
action: this.tour.next,
|
204
|
-
classes: 'btn'
|
205
|
-
}];
|
2122
|
+
module.exports = baseAssignValue;
|
206
2123
|
|
207
|
-
// Can pass in an object which will assume asingle button
|
208
|
-
} else if (!buttonsAreEmpty && buttonsAreObject) {
|
209
|
-
this.options.buttons = [this.options.buttons];
|
210
2124
|
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
}
|
215
|
-
}
|
216
|
-
}, {
|
217
|
-
key: 'getTour',
|
218
|
-
value: function getTour() {
|
219
|
-
return this.tour;
|
220
|
-
}
|
221
|
-
}, {
|
222
|
-
key: 'bindAdvance',
|
223
|
-
value: function bindAdvance() {
|
224
|
-
var _this2 = this;
|
2125
|
+
/***/ }),
|
2126
|
+
/* 39 */
|
2127
|
+
/***/ (function(module, exports, __webpack_require__) {
|
225
2128
|
|
226
|
-
|
2129
|
+
var getNative = __webpack_require__(40);
|
227
2130
|
|
228
|
-
|
2131
|
+
var defineProperty = (function() {
|
2132
|
+
try {
|
2133
|
+
var func = getNative(Object, 'defineProperty');
|
2134
|
+
func({}, '', {});
|
2135
|
+
return func;
|
2136
|
+
} catch (e) {}
|
2137
|
+
}());
|
229
2138
|
|
230
|
-
|
231
|
-
var selector = _parseShorthand.selector;
|
2139
|
+
module.exports = defineProperty;
|
232
2140
|
|
233
|
-
var handler = function handler(e) {
|
234
|
-
if (!_this2.isOpen()) {
|
235
|
-
return;
|
236
|
-
}
|
237
2141
|
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
}
|
242
|
-
} else {
|
243
|
-
if (_this2.el && e.target === _this2.el) {
|
244
|
-
_this2.tour.next();
|
245
|
-
}
|
246
|
-
}
|
247
|
-
};
|
2142
|
+
/***/ }),
|
2143
|
+
/* 40 */
|
2144
|
+
/***/ (function(module, exports) {
|
248
2145
|
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
2146
|
+
/**
|
2147
|
+
* Gets the value at `key` of `object`.
|
2148
|
+
*
|
2149
|
+
* @private
|
2150
|
+
* @param {Object} [object] The object to query.
|
2151
|
+
* @param {string} key The key of the property to get.
|
2152
|
+
* @returns {*} Returns the property value.
|
2153
|
+
*/
|
2154
|
+
function getValue(object, key) {
|
2155
|
+
return object == null ? undefined : object[key];
|
2156
|
+
}
|
260
2157
|
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
2158
|
+
module.exports = getValue;
|
2159
|
+
|
2160
|
+
|
2161
|
+
/***/ }),
|
2162
|
+
/* 41 */
|
2163
|
+
/***/ (function(module, exports) {
|
2164
|
+
|
2165
|
+
/**
|
2166
|
+
* Performs a
|
2167
|
+
* [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
|
2168
|
+
* comparison between two values to determine if they are equivalent.
|
2169
|
+
*
|
2170
|
+
* @static
|
2171
|
+
* @memberOf _
|
2172
|
+
* @since 4.0.0
|
2173
|
+
* @category Lang
|
2174
|
+
* @param {*} value The value to compare.
|
2175
|
+
* @param {*} other The other value to compare.
|
2176
|
+
* @returns {boolean} Returns `true` if the values are equivalent, else `false`.
|
2177
|
+
* @example
|
2178
|
+
*
|
2179
|
+
* var object = { 'a': 1 };
|
2180
|
+
* var other = { 'a': 1 };
|
2181
|
+
*
|
2182
|
+
* _.eq(object, object);
|
2183
|
+
* // => true
|
2184
|
+
*
|
2185
|
+
* _.eq(object, other);
|
2186
|
+
* // => false
|
2187
|
+
*
|
2188
|
+
* _.eq('a', 'a');
|
2189
|
+
* // => true
|
2190
|
+
*
|
2191
|
+
* _.eq('a', Object('a'));
|
2192
|
+
* // => false
|
2193
|
+
*
|
2194
|
+
* _.eq(NaN, NaN);
|
2195
|
+
* // => true
|
2196
|
+
*/
|
2197
|
+
function eq(value, other) {
|
2198
|
+
return value === other || (value !== value && other !== other);
|
2199
|
+
}
|
269
2200
|
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
2201
|
+
module.exports = eq;
|
2202
|
+
|
2203
|
+
|
2204
|
+
/***/ }),
|
2205
|
+
/* 42 */
|
2206
|
+
/***/ (function(module, exports) {
|
2207
|
+
|
2208
|
+
/**
|
2209
|
+
* This base implementation of `_.zipObject` which assigns values using `assignFunc`.
|
2210
|
+
*
|
2211
|
+
* @private
|
2212
|
+
* @param {Array} props The property identifiers.
|
2213
|
+
* @param {Array} values The property values.
|
2214
|
+
* @param {Function} assignFunc The function to assign values.
|
2215
|
+
* @returns {Object} Returns the new object.
|
2216
|
+
*/
|
2217
|
+
function baseZipObject(props, values, assignFunc) {
|
2218
|
+
var index = -1,
|
2219
|
+
length = props.length,
|
2220
|
+
valsLength = values.length,
|
2221
|
+
result = {};
|
2222
|
+
|
2223
|
+
while (++index < length) {
|
2224
|
+
var value = index < valsLength ? values[index] : undefined;
|
2225
|
+
assignFunc(result, props[index], value);
|
2226
|
+
}
|
2227
|
+
return result;
|
2228
|
+
}
|
278
2229
|
|
279
|
-
|
280
|
-
var attachment = ATTACHMENT[opts.on] || ATTACHMENT.right;
|
281
|
-
if (isUndefined(opts.element)) {
|
282
|
-
opts.element = 'viewport';
|
283
|
-
attachment = 'middle center';
|
284
|
-
}
|
2230
|
+
module.exports = baseZipObject;
|
285
2231
|
|
286
|
-
var tetherOpts = {
|
287
|
-
classPrefix: 'shepherd',
|
288
|
-
element: this.el,
|
289
|
-
constraints: [{
|
290
|
-
to: 'window',
|
291
|
-
pin: true,
|
292
|
-
attachment: 'together'
|
293
|
-
}],
|
294
|
-
target: opts.element,
|
295
|
-
offset: opts.offset || '0 0',
|
296
|
-
attachment: attachment
|
297
|
-
};
|
298
2232
|
|
299
|
-
|
300
|
-
|
301
|
-
|
2233
|
+
/***/ }),
|
2234
|
+
/* 43 */
|
2235
|
+
/***/ (function(module, exports) {
|
302
2236
|
|
303
|
-
|
304
|
-
}
|
305
|
-
}, {
|
306
|
-
key: 'show',
|
307
|
-
value: function show() {
|
308
|
-
var _this3 = this;
|
2237
|
+
var g;
|
309
2238
|
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
return _this3._show();
|
315
|
-
});
|
316
|
-
}
|
317
|
-
}
|
318
|
-
this._show();
|
319
|
-
}
|
320
|
-
}, {
|
321
|
-
key: '_show',
|
322
|
-
value: function _show() {
|
323
|
-
var _this4 = this;
|
2239
|
+
// This works in non-strict mode
|
2240
|
+
g = (function() {
|
2241
|
+
return this;
|
2242
|
+
})();
|
324
2243
|
|
325
|
-
|
2244
|
+
try {
|
2245
|
+
// This works if eval is allowed (see CSP)
|
2246
|
+
g = g || Function("return this")() || (1, eval)("this");
|
2247
|
+
} catch (e) {
|
2248
|
+
// This works if the window reference is available
|
2249
|
+
if (typeof window === "object") g = window;
|
2250
|
+
}
|
326
2251
|
|
327
|
-
|
328
|
-
|
329
|
-
|
2252
|
+
// g can still be undefined, but nothing to do about it...
|
2253
|
+
// We return undefined, instead of nothing here, so it's
|
2254
|
+
// easier to handle this case. if(!global) { ...}
|
330
2255
|
|
331
|
-
|
2256
|
+
module.exports = g;
|
332
2257
|
|
333
|
-
document.body.setAttribute('data-shepherd-step', this.id);
|
334
2258
|
|
335
|
-
|
2259
|
+
/***/ }),
|
2260
|
+
/* 44 */
|
2261
|
+
/***/ (function(module, exports, __webpack_require__) {
|
336
2262
|
|
337
|
-
|
338
|
-
setTimeout(function () {
|
339
|
-
_this4.scrollTo();
|
340
|
-
});
|
341
|
-
}
|
2263
|
+
"use strict";
|
342
2264
|
|
343
|
-
this.trigger('show');
|
344
|
-
}
|
345
|
-
}, {
|
346
|
-
key: 'hide',
|
347
|
-
value: function hide() {
|
348
|
-
this.trigger('before-hide');
|
349
2265
|
|
350
|
-
|
2266
|
+
Object.defineProperty(exports, "__esModule", {
|
2267
|
+
value: true
|
2268
|
+
});
|
2269
|
+
var missingTippy = exports.missingTippy = 'Using the attachment feature of Shepherd requires the Tippy.js library';
|
351
2270
|
|
352
|
-
|
2271
|
+
/***/ }),
|
2272
|
+
/* 45 */
|
2273
|
+
/***/ (function(module, exports, __webpack_require__) {
|
353
2274
|
|
354
|
-
|
355
|
-
this.tether.destroy();
|
356
|
-
}
|
357
|
-
this.tether = null;
|
2275
|
+
"use strict";
|
358
2276
|
|
359
|
-
this.trigger('hide');
|
360
|
-
}
|
361
|
-
}, {
|
362
|
-
key: 'isOpen',
|
363
|
-
value: function isOpen() {
|
364
|
-
return this.el && hasClass(this.el, 'shepherd-open');
|
365
|
-
}
|
366
|
-
}, {
|
367
|
-
key: 'cancel',
|
368
|
-
value: function cancel() {
|
369
|
-
this.tour.cancel();
|
370
|
-
this.trigger('cancel');
|
371
|
-
}
|
372
|
-
}, {
|
373
|
-
key: 'complete',
|
374
|
-
value: function complete() {
|
375
|
-
this.tour.complete();
|
376
|
-
this.trigger('complete');
|
377
|
-
}
|
378
|
-
}, {
|
379
|
-
key: 'scrollTo',
|
380
|
-
value: function scrollTo() {
|
381
|
-
var _getAttachTo = this.getAttachTo();
|
382
2277
|
|
383
|
-
|
2278
|
+
Object.defineProperty(exports, "__esModule", {
|
2279
|
+
value: true
|
2280
|
+
});
|
2281
|
+
exports.Shepherd = exports.Tour = undefined;
|
384
2282
|
|
385
|
-
|
386
|
-
this.options.scrollToHandler(element);
|
387
|
-
} else if (!isUndefined(element)) {
|
388
|
-
element.scrollIntoView();
|
389
|
-
}
|
390
|
-
}
|
391
|
-
}, {
|
392
|
-
key: 'destroy',
|
393
|
-
value: function destroy() {
|
394
|
-
if (!isUndefined(this.el) && this.el.parentNode) {
|
395
|
-
this.el.parentNode.removeChild(this.el);
|
396
|
-
delete this.el;
|
397
|
-
}
|
2283
|
+
var _isEmpty2 = __webpack_require__(9);
|
398
2284
|
|
399
|
-
|
400
|
-
this.tether.destroy();
|
401
|
-
}
|
402
|
-
this.tether = null;
|
2285
|
+
var _isEmpty3 = _interopRequireDefault(_isEmpty2);
|
403
2286
|
|
404
|
-
|
405
|
-
}
|
406
|
-
}, {
|
407
|
-
key: 'render',
|
408
|
-
value: function render() {
|
409
|
-
var _this5 = this;
|
2287
|
+
var _isUndefined2 = __webpack_require__(0);
|
410
2288
|
|
411
|
-
|
412
|
-
this.destroy();
|
413
|
-
}
|
2289
|
+
var _isUndefined3 = _interopRequireDefault(_isUndefined2);
|
414
2290
|
|
415
|
-
|
2291
|
+
var _isString2 = __webpack_require__(2);
|
416
2292
|
|
417
|
-
|
418
|
-
content.className = 'shepherd-content';
|
419
|
-
this.el.appendChild(content);
|
2293
|
+
var _isString3 = _interopRequireDefault(_isString2);
|
420
2294
|
|
421
|
-
|
422
|
-
content.appendChild(header);
|
2295
|
+
var _isNumber2 = __webpack_require__(46);
|
423
2296
|
|
424
|
-
|
425
|
-
header.innerHTML += '<h3 class=\'shepherd-title\'>' + this.options.title + '</h3>';
|
426
|
-
this.el.className += ' shepherd-has-title';
|
427
|
-
}
|
2297
|
+
var _isNumber3 = _interopRequireDefault(_isNumber2);
|
428
2298
|
|
429
|
-
|
430
|
-
var link = createFromHTML("<a href class='shepherd-cancel-link'>✕</a>");
|
431
|
-
header.appendChild(link);
|
2299
|
+
var _isFunction2 = __webpack_require__(5);
|
432
2300
|
|
433
|
-
|
2301
|
+
var _isFunction3 = _interopRequireDefault(_isFunction2);
|
434
2302
|
|
435
|
-
|
436
|
-
}
|
2303
|
+
var _evented = __webpack_require__(4);
|
437
2304
|
|
438
|
-
|
439
|
-
(function () {
|
440
|
-
var text = createFromHTML("<div class='shepherd-text'></div>");
|
441
|
-
var paragraphs = _this5.options.text;
|
2305
|
+
var _step = __webpack_require__(7);
|
442
2306
|
|
443
|
-
|
444
|
-
paragraphs = paragraphs.call(_this5, text);
|
445
|
-
}
|
2307
|
+
var _bind = __webpack_require__(11);
|
446
2308
|
|
447
|
-
|
448
|
-
text.appendChild(paragraphs);
|
449
|
-
} else {
|
450
|
-
if (typeof paragraphs === 'string') {
|
451
|
-
paragraphs = [paragraphs];
|
452
|
-
}
|
2309
|
+
var _tippy = __webpack_require__(13);
|
453
2310
|
|
454
|
-
|
455
|
-
text.innerHTML += '<p>' + paragraph + '</p>';
|
456
|
-
});
|
457
|
-
}
|
2311
|
+
var _tippy2 = _interopRequireDefault(_tippy);
|
458
2312
|
|
459
|
-
|
460
|
-
})();
|
461
|
-
}
|
2313
|
+
var _tooltipDefaults = __webpack_require__(47);
|
462
2314
|
|
463
|
-
|
464
|
-
(function () {
|
465
|
-
var footer = document.createElement('footer');
|
466
|
-
var buttons = createFromHTML("<ul class='shepherd-buttons'></ul>");
|
2315
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
467
2316
|
|
468
|
-
|
469
|
-
var button = createFromHTML('<li><a class=\'shepherd-button ' + (cfg.classes || '') + '\'>' + cfg.text + '</a>');
|
470
|
-
buttons.appendChild(button);
|
471
|
-
_this5.bindButtonEvents(cfg, button.querySelector('a'));
|
472
|
-
});
|
2317
|
+
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
473
2318
|
|
474
|
-
|
475
|
-
content.appendChild(footer);
|
476
|
-
})();
|
477
|
-
}
|
2319
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
478
2320
|
|
479
|
-
|
2321
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
480
2322
|
|
481
|
-
|
2323
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
482
2324
|
|
483
|
-
|
484
|
-
this.bindAdvance();
|
485
|
-
}
|
486
|
-
}
|
487
|
-
}, {
|
488
|
-
key: 'bindCancelLink',
|
489
|
-
value: function bindCancelLink(link) {
|
490
|
-
var _this6 = this;
|
2325
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
491
2326
|
|
492
|
-
|
493
|
-
e.preventDefault();
|
494
|
-
_this6.cancel();
|
495
|
-
});
|
496
|
-
}
|
497
|
-
}, {
|
498
|
-
key: 'bindButtonEvents',
|
499
|
-
value: function bindButtonEvents(cfg, el) {
|
500
|
-
var _this7 = this;
|
2327
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
501
2328
|
|
502
|
-
|
503
|
-
if (!isUndefined(cfg.action)) {
|
504
|
-
// Including both a click event and an action is not supported
|
505
|
-
cfg.events.click = cfg.action;
|
506
|
-
}
|
2329
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
507
2330
|
|
508
|
-
|
509
|
-
if (({}).hasOwnProperty.call(cfg.events, _event2)) {
|
510
|
-
var handler = cfg.events[_event2];
|
511
|
-
if (typeof handler === 'string') {
|
512
|
-
(function () {
|
513
|
-
var page = handler;
|
514
|
-
handler = function () {
|
515
|
-
return _this7.tour.show(page);
|
516
|
-
};
|
517
|
-
})();
|
518
|
-
}
|
519
|
-
el.addEventListener(_event2, handler);
|
520
|
-
}
|
521
|
-
}
|
2331
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
522
2332
|
|
523
|
-
|
524
|
-
for (var _event3 in cfg.events) {
|
525
|
-
if (({}).hasOwnProperty.call(cfg.events, _event3)) {
|
526
|
-
var handler = cfg.events[_event3];
|
527
|
-
el.removeEventListener(_event3, handler);
|
528
|
-
}
|
529
|
-
}
|
530
|
-
});
|
531
|
-
}
|
532
|
-
}]);
|
2333
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
533
2334
|
|
534
|
-
|
535
|
-
|
2335
|
+
var Shepherd = new _evented.Evented();
|
2336
|
+
/**
|
2337
|
+
* Class representing the site tour
|
2338
|
+
* @extends {Evented}
|
2339
|
+
*/
|
536
2340
|
|
537
|
-
var Tour =
|
538
|
-
|
2341
|
+
var Tour =
|
2342
|
+
/*#__PURE__*/
|
2343
|
+
exports.Tour = function (_Evented) {
|
2344
|
+
_inherits(Tour, _Evented);
|
539
2345
|
|
2346
|
+
/**
|
2347
|
+
*
|
2348
|
+
* @param {Object} options The options for the tour
|
2349
|
+
* @param {Object} options.defaultStepOptions Default options for Steps created through `addStep`
|
2350
|
+
* @param {Step[]} options.steps An array of Step instances to initialize the tour with
|
2351
|
+
* @returns {Tour}
|
2352
|
+
*/
|
540
2353
|
function Tour() {
|
541
|
-
var
|
2354
|
+
var _this;
|
542
2355
|
|
543
|
-
var options = arguments.length
|
2356
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
544
2357
|
|
545
2358
|
_classCallCheck(this, Tour);
|
546
2359
|
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
this.steps = this.options.steps || [];
|
2360
|
+
_this = _possibleConstructorReturn(this, _getPrototypeOf(Tour).call(this, options));
|
2361
|
+
|
2362
|
+
_bind.bindMethods.call(_assertThisInitialized(_assertThisInitialized(_this)), ['back', 'cancel', 'complete', 'next']);
|
551
2363
|
|
552
|
-
|
553
|
-
|
2364
|
+
_this.options = options;
|
2365
|
+
_this.steps = _this.options.steps || []; // Pass these events onto the global Shepherd object
|
2366
|
+
|
2367
|
+
var events = ['active', 'cancel', 'complete', 'inactive', 'show', 'start'];
|
554
2368
|
events.map(function (event) {
|
555
2369
|
(function (e) {
|
556
|
-
|
2370
|
+
_this.on(e, function (opts) {
|
557
2371
|
opts = opts || {};
|
558
|
-
opts.tour =
|
2372
|
+
opts.tour = _assertThisInitialized(_assertThisInitialized(_this));
|
559
2373
|
Shepherd.trigger(e, opts);
|
560
2374
|
});
|
561
2375
|
})(event);
|
562
2376
|
});
|
563
2377
|
|
564
|
-
|
2378
|
+
_this._setTooltipDefaults();
|
2379
|
+
|
2380
|
+
return _possibleConstructorReturn(_this, _assertThisInitialized(_assertThisInitialized(_this)));
|
565
2381
|
}
|
2382
|
+
/**
|
2383
|
+
* Adds a new step to the tour
|
2384
|
+
* @param {Object|Number|Step|String} arg1
|
2385
|
+
* When arg2 is defined, arg1 can either be a string or number, to use for the `id` for the step
|
2386
|
+
* When arg2 is undefined, arg1 is either an object containing step options or a Step instance
|
2387
|
+
* @param {Object|Step} arg2 An object containing step options or a Step instance
|
2388
|
+
* @return {Step} The newly added step
|
2389
|
+
*/
|
2390
|
+
|
566
2391
|
|
567
2392
|
_createClass(Tour, [{
|
568
|
-
key:
|
569
|
-
value: function
|
570
|
-
var
|
2393
|
+
key: "addStep",
|
2394
|
+
value: function addStep(arg1, arg2) {
|
2395
|
+
var name, step; // If we just have one argument, we can assume it is an object of step options, with an id
|
571
2396
|
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
}, {
|
578
|
-
key: 'addStep',
|
579
|
-
value: function addStep(name, step) {
|
580
|
-
if (isUndefined(step)) {
|
581
|
-
step = name;
|
2397
|
+
if ((0, _isUndefined3.default)(arg2)) {
|
2398
|
+
step = arg1;
|
2399
|
+
} else {
|
2400
|
+
name = arg1;
|
2401
|
+
step = arg2;
|
582
2402
|
}
|
583
2403
|
|
584
|
-
if (!(step instanceof Step)) {
|
585
|
-
|
586
|
-
step.id = name.toString();
|
587
|
-
}
|
588
|
-
step = extend({}, this.options.defaults, step);
|
589
|
-
step = new Step(this, step);
|
2404
|
+
if (!(step instanceof _step.Step)) {
|
2405
|
+
step = this.setupStep(step, name);
|
590
2406
|
} else {
|
591
2407
|
step.tour = this;
|
592
2408
|
}
|
593
2409
|
|
594
2410
|
this.steps.push(step);
|
595
|
-
return
|
2411
|
+
return step;
|
596
2412
|
}
|
2413
|
+
/**
|
2414
|
+
* Go to the previous step in the tour
|
2415
|
+
*/
|
2416
|
+
|
597
2417
|
}, {
|
598
|
-
key:
|
599
|
-
value: function
|
600
|
-
var
|
2418
|
+
key: "back",
|
2419
|
+
value: function back() {
|
2420
|
+
var index = this.steps.indexOf(this.currentStep);
|
2421
|
+
this.show(index - 1, false);
|
2422
|
+
}
|
2423
|
+
/**
|
2424
|
+
* Calls done() triggering the 'cancel' event
|
2425
|
+
* If `confirmCancel` is true, will show a window.confirm before cancelling
|
2426
|
+
*/
|
601
2427
|
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
|
610
|
-
|
2428
|
+
}, {
|
2429
|
+
key: "cancel",
|
2430
|
+
value: function cancel() {
|
2431
|
+
if (this.options.confirmCancel) {
|
2432
|
+
var cancelMessage = this.options.confirmCancelMessage || 'Are you sure you want to stop the tour?';
|
2433
|
+
var stopTour = window.confirm(cancelMessage);
|
2434
|
+
|
2435
|
+
if (stopTour) {
|
2436
|
+
this.done('cancel');
|
611
2437
|
}
|
2438
|
+
} else {
|
2439
|
+
this.done('cancel');
|
612
2440
|
}
|
2441
|
+
}
|
2442
|
+
/**
|
2443
|
+
* Calls done() triggering the `complete` event
|
2444
|
+
*/
|
613
2445
|
|
614
|
-
|
615
|
-
|
2446
|
+
}, {
|
2447
|
+
key: "complete",
|
2448
|
+
value: function complete() {
|
2449
|
+
this.done('complete');
|
2450
|
+
}
|
2451
|
+
/**
|
2452
|
+
* Called whenever the tour is cancelled or completed, basically anytime we exit the tour
|
2453
|
+
* @param {String} event The event name to trigger
|
2454
|
+
*/
|
616
2455
|
|
617
|
-
|
2456
|
+
}, {
|
2457
|
+
key: "done",
|
2458
|
+
value: function done(event) {
|
2459
|
+
if (!(0, _isEmpty3.default)(this.steps)) {
|
2460
|
+
this.steps.forEach(function (step) {
|
2461
|
+
return step.destroy();
|
2462
|
+
});
|
618
2463
|
}
|
2464
|
+
|
2465
|
+
this.trigger(event);
|
2466
|
+
Shepherd.activeTour = null;
|
2467
|
+
document.body.classList.remove('shepherd-active');
|
2468
|
+
this.trigger('inactive', {
|
2469
|
+
tour: this
|
2470
|
+
});
|
619
2471
|
}
|
2472
|
+
/**
|
2473
|
+
* Gets the step from a given id
|
2474
|
+
* @param {Number|String} id The id of the step to retrieve
|
2475
|
+
* @return {Step} The step corresponding to the `id`
|
2476
|
+
*/
|
2477
|
+
|
620
2478
|
}, {
|
621
|
-
key:
|
2479
|
+
key: "getById",
|
622
2480
|
value: function getById(id) {
|
623
|
-
|
624
|
-
|
625
|
-
|
626
|
-
return step;
|
627
|
-
}
|
628
|
-
}
|
2481
|
+
return this.steps.find(function (step) {
|
2482
|
+
return step.id === id;
|
2483
|
+
});
|
629
2484
|
}
|
2485
|
+
/**
|
2486
|
+
* Gets the current step
|
2487
|
+
* @returns {Step|null}
|
2488
|
+
*/
|
2489
|
+
|
630
2490
|
}, {
|
631
|
-
key:
|
2491
|
+
key: "getCurrentStep",
|
632
2492
|
value: function getCurrentStep() {
|
633
2493
|
return this.currentStep;
|
634
2494
|
}
|
2495
|
+
/**
|
2496
|
+
* Hide the current step
|
2497
|
+
*/
|
2498
|
+
|
635
2499
|
}, {
|
636
|
-
key:
|
637
|
-
value: function
|
638
|
-
var
|
2500
|
+
key: "hide",
|
2501
|
+
value: function hide() {
|
2502
|
+
var currentStep = this.getCurrentStep();
|
639
2503
|
|
640
|
-
if (
|
641
|
-
|
642
|
-
this.trigger('complete');
|
643
|
-
this.done();
|
644
|
-
} else {
|
645
|
-
this.show(index + 1, true);
|
2504
|
+
if (currentStep) {
|
2505
|
+
return currentStep.hide();
|
646
2506
|
}
|
647
2507
|
}
|
648
2508
|
}, {
|
649
|
-
key:
|
650
|
-
value: function
|
651
|
-
|
652
|
-
this.show(index - 1, false);
|
2509
|
+
key: "isActive",
|
2510
|
+
value: function isActive() {
|
2511
|
+
return Shepherd.activeTour === this;
|
653
2512
|
}
|
2513
|
+
/**
|
2514
|
+
* Go to the next step in the tour
|
2515
|
+
* If we are at the end, call `complete`
|
2516
|
+
*/
|
2517
|
+
|
654
2518
|
}, {
|
655
|
-
key:
|
656
|
-
value: function
|
657
|
-
|
658
|
-
|
2519
|
+
key: "next",
|
2520
|
+
value: function next() {
|
2521
|
+
var index = this.steps.indexOf(this.currentStep);
|
2522
|
+
|
2523
|
+
if (index === this.steps.length - 1) {
|
2524
|
+
this.complete();
|
2525
|
+
} else {
|
2526
|
+
this.show(index + 1, true);
|
659
2527
|
}
|
660
|
-
this.trigger('cancel');
|
661
|
-
this.done();
|
662
2528
|
}
|
2529
|
+
/**
|
2530
|
+
* Removes the step from the tour
|
2531
|
+
* @param {String} name The id for the step to remove
|
2532
|
+
*/
|
2533
|
+
|
663
2534
|
}, {
|
664
|
-
key:
|
665
|
-
value: function
|
666
|
-
|
667
|
-
|
2535
|
+
key: "removeStep",
|
2536
|
+
value: function removeStep(name) {
|
2537
|
+
var _this2 = this;
|
2538
|
+
|
2539
|
+
var current = this.getCurrentStep(); // Find the step, destroy it and remove it from this.steps
|
2540
|
+
|
2541
|
+
this.steps.some(function (step, i) {
|
2542
|
+
if (step.id === name) {
|
2543
|
+
if (step.isOpen()) {
|
2544
|
+
step.hide();
|
2545
|
+
}
|
2546
|
+
|
2547
|
+
step.destroy();
|
2548
|
+
|
2549
|
+
_this2.steps.splice(i, 1);
|
2550
|
+
|
2551
|
+
return true;
|
2552
|
+
}
|
2553
|
+
});
|
2554
|
+
|
2555
|
+
if (current && current.id === name) {
|
2556
|
+
this.currentStep = undefined; // If we have steps left, show the first one, otherwise just cancel the tour
|
2557
|
+
|
2558
|
+
this.steps.length ? this.show(0) : this.cancel();
|
668
2559
|
}
|
669
|
-
this.trigger('complete');
|
670
|
-
this.done();
|
671
2560
|
}
|
2561
|
+
/**
|
2562
|
+
* Setup a new step object
|
2563
|
+
* @param {Object} stepOptions The object describing the options for the step
|
2564
|
+
* @param {String|Number} name The string or number to use as the `id` for the step
|
2565
|
+
* @return {Step} The step instance
|
2566
|
+
*/
|
2567
|
+
|
672
2568
|
}, {
|
673
|
-
key:
|
674
|
-
value: function
|
675
|
-
if (
|
676
|
-
|
2569
|
+
key: "setupStep",
|
2570
|
+
value: function setupStep(stepOptions, name) {
|
2571
|
+
if ((0, _isString3.default)(name) || (0, _isNumber3.default)(name)) {
|
2572
|
+
stepOptions.id = name.toString();
|
677
2573
|
}
|
678
|
-
|
679
|
-
this.
|
680
|
-
|
681
|
-
}, {
|
682
|
-
key: 'done',
|
683
|
-
value: function done() {
|
684
|
-
Shepherd.activeTour = null;
|
685
|
-
removeClass(document.body, 'shepherd-active');
|
686
|
-
this.trigger('inactive', { tour: this });
|
2574
|
+
|
2575
|
+
stepOptions = Object.assign({}, this.options.defaultStepOptions, stepOptions);
|
2576
|
+
return new _step.Step(this, stepOptions);
|
687
2577
|
}
|
2578
|
+
/**
|
2579
|
+
* Show a specific step in the tour
|
2580
|
+
* @param {Number|String} key The key to look up the step by
|
2581
|
+
* @param {Boolean} forward True if we are going forward, false if backward
|
2582
|
+
*/
|
2583
|
+
|
688
2584
|
}, {
|
689
|
-
key:
|
2585
|
+
key: "show",
|
690
2586
|
value: function show() {
|
691
|
-
var key = arguments.length
|
692
|
-
var forward = arguments.length
|
693
|
-
|
694
|
-
if (this.currentStep) {
|
695
|
-
this.currentStep.hide();
|
696
|
-
} else {
|
697
|
-
addClass(document.body, 'shepherd-active');
|
698
|
-
this.trigger('active', { tour: this });
|
699
|
-
}
|
2587
|
+
var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
2588
|
+
var forward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
2589
|
+
var step = (0, _isString3.default)(key) ? this.getById(key) : this.steps[key];
|
700
2590
|
|
701
|
-
|
702
|
-
|
703
|
-
var next = undefined;
|
2591
|
+
if (step) {
|
2592
|
+
this._updateStateBeforeShow();
|
704
2593
|
|
705
|
-
|
706
|
-
next = this.getById(key);
|
707
|
-
} else {
|
708
|
-
next = this.steps[key];
|
709
|
-
}
|
2594
|
+
var shouldSkipStep = (0, _isFunction3.default)(step.options.showOn) && !step.options.showOn(); // If `showOn` returns false, we want to skip the step, otherwise, show the step like normal
|
710
2595
|
|
711
|
-
|
712
|
-
|
713
|
-
var index = this.steps.indexOf(next);
|
714
|
-
var nextIndex = forward ? index + 1 : index - 1;
|
715
|
-
this.show(nextIndex, forward);
|
2596
|
+
if (shouldSkipStep) {
|
2597
|
+
this._skipStep(step, forward);
|
716
2598
|
} else {
|
717
2599
|
this.trigger('show', {
|
718
|
-
step:
|
2600
|
+
step: step,
|
719
2601
|
previous: this.currentStep
|
720
2602
|
});
|
721
|
-
|
722
|
-
|
723
|
-
this.currentStep.hide();
|
724
|
-
}
|
725
|
-
|
726
|
-
this.currentStep = next;
|
727
|
-
next.show();
|
2603
|
+
this.currentStep = step;
|
2604
|
+
step.show();
|
728
2605
|
}
|
729
2606
|
}
|
730
2607
|
}
|
2608
|
+
/**
|
2609
|
+
* Start the tour
|
2610
|
+
*/
|
2611
|
+
|
731
2612
|
}, {
|
732
|
-
key:
|
2613
|
+
key: "start",
|
733
2614
|
value: function start() {
|
734
2615
|
this.trigger('start');
|
735
|
-
|
736
2616
|
this.currentStep = null;
|
2617
|
+
|
2618
|
+
this._setupActiveTour();
|
2619
|
+
|
737
2620
|
this.next();
|
738
2621
|
}
|
2622
|
+
/**
|
2623
|
+
* Make this tour "active"
|
2624
|
+
* @private
|
2625
|
+
*/
|
2626
|
+
|
2627
|
+
}, {
|
2628
|
+
key: "_setupActiveTour",
|
2629
|
+
value: function _setupActiveTour() {
|
2630
|
+
document.body.classList.add('shepherd-active');
|
2631
|
+
this.trigger('active', {
|
2632
|
+
tour: this
|
2633
|
+
});
|
2634
|
+
Shepherd.activeTour = this;
|
2635
|
+
}
|
2636
|
+
/**
|
2637
|
+
* Called when `showOn` evaluates to false, to skip the step
|
2638
|
+
* @param {Step} step The step to skip
|
2639
|
+
* @param {Boolean} forward True if we are going forward, false if backward
|
2640
|
+
* @private
|
2641
|
+
*/
|
2642
|
+
|
2643
|
+
}, {
|
2644
|
+
key: "_skipStep",
|
2645
|
+
value: function _skipStep(step, forward) {
|
2646
|
+
var index = this.steps.indexOf(step);
|
2647
|
+
var nextIndex = forward ? index + 1 : index - 1;
|
2648
|
+
this.show(nextIndex, forward);
|
2649
|
+
}
|
2650
|
+
}, {
|
2651
|
+
key: "_setTooltipDefaults",
|
2652
|
+
value: function _setTooltipDefaults() {
|
2653
|
+
_tippy2.default.setDefaults(_tooltipDefaults.defaults);
|
2654
|
+
}
|
2655
|
+
}, {
|
2656
|
+
key: "_updateStateBeforeShow",
|
2657
|
+
value: function _updateStateBeforeShow() {
|
2658
|
+
if (this.currentStep) {
|
2659
|
+
this.currentStep.hide();
|
2660
|
+
}
|
2661
|
+
|
2662
|
+
if (!this.isActive()) {
|
2663
|
+
this._setupActiveTour();
|
2664
|
+
}
|
2665
|
+
}
|
739
2666
|
}]);
|
740
2667
|
|
741
2668
|
return Tour;
|
742
|
-
}
|
2669
|
+
}(_evented.Evented);
|
2670
|
+
|
2671
|
+
exports.Shepherd = Shepherd;
|
2672
|
+
|
2673
|
+
/***/ }),
|
2674
|
+
/* 46 */
|
2675
|
+
/***/ (function(module, exports, __webpack_require__) {
|
2676
|
+
|
2677
|
+
var baseGetTag = __webpack_require__(3),
|
2678
|
+
isObjectLike = __webpack_require__(1);
|
2679
|
+
|
2680
|
+
/** `Object#toString` result references. */
|
2681
|
+
var numberTag = '[object Number]';
|
2682
|
+
|
2683
|
+
/**
|
2684
|
+
* Checks if `value` is classified as a `Number` primitive or object.
|
2685
|
+
*
|
2686
|
+
* **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are
|
2687
|
+
* classified as numbers, use the `_.isFinite` method.
|
2688
|
+
*
|
2689
|
+
* @static
|
2690
|
+
* @memberOf _
|
2691
|
+
* @since 0.1.0
|
2692
|
+
* @category Lang
|
2693
|
+
* @param {*} value The value to check.
|
2694
|
+
* @returns {boolean} Returns `true` if `value` is a number, else `false`.
|
2695
|
+
* @example
|
2696
|
+
*
|
2697
|
+
* _.isNumber(3);
|
2698
|
+
* // => true
|
2699
|
+
*
|
2700
|
+
* _.isNumber(Number.MIN_VALUE);
|
2701
|
+
* // => true
|
2702
|
+
*
|
2703
|
+
* _.isNumber(Infinity);
|
2704
|
+
* // => true
|
2705
|
+
*
|
2706
|
+
* _.isNumber('3');
|
2707
|
+
* // => false
|
2708
|
+
*/
|
2709
|
+
function isNumber(value) {
|
2710
|
+
return typeof value == 'number' ||
|
2711
|
+
(isObjectLike(value) && baseGetTag(value) == numberTag);
|
2712
|
+
}
|
2713
|
+
|
2714
|
+
module.exports = isNumber;
|
2715
|
+
|
2716
|
+
|
2717
|
+
/***/ }),
|
2718
|
+
/* 47 */
|
2719
|
+
/***/ (function(module, exports, __webpack_require__) {
|
743
2720
|
|
744
|
-
|
745
|
-
|
2721
|
+
"use strict";
|
2722
|
+
|
2723
|
+
|
2724
|
+
Object.defineProperty(exports, "__esModule", {
|
2725
|
+
value: true
|
2726
|
+
});
|
2727
|
+
var defaults = exports.defaults = {
|
2728
|
+
trigger: 'manual',
|
2729
|
+
arrow: true,
|
2730
|
+
arrowTransform: 'scale(2)',
|
2731
|
+
animation: 'fade',
|
2732
|
+
duration: 420,
|
2733
|
+
flip: true,
|
2734
|
+
animateFill: false,
|
2735
|
+
// https://atomiks.github.io/tippyjs/#animate-fill-option
|
2736
|
+
interactive: true,
|
2737
|
+
// https://atomiks.github.io/tippyjs/#interactive-option
|
2738
|
+
hideOnClick: 'toggle',
|
2739
|
+
// https://atomiks.github.io/tippyjs/#hide-on-click-option
|
2740
|
+
multiple: true // https://atomiks.github.io/tippyjs/#multiple-option
|
2741
|
+
|
2742
|
+
};
|
746
2743
|
|
747
|
-
})
|
2744
|
+
/***/ })
|
2745
|
+
/******/ ]);
|
2746
|
+
});
|
2747
|
+
//# sourceMappingURL=shepherd.js.map
|