shepherdjs_rails 1.8.1 → 2.0.0.pre.beta.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/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
|