diff --git a/dashboard/public/css/introjs.css b/dashboard/public/css/introjs.css new file mode 100644 index 00000000..95875772 --- /dev/null +++ b/dashboard/public/css/introjs.css @@ -0,0 +1,411 @@ +.introjs-overlay { + position: absolute; + box-sizing: content-box; + z-index: 999999; + opacity: 0; + transition: all 0.3s ease-out; + } + .introjs-showElement { + z-index: 9999999 !important; + } + tr.introjs-showElement > td { + z-index: 9999999 !important; + position: relative; + } + tr.introjs-showElement > th { + z-index: 9999999 !important; + position: relative; + } + .introjs-disableInteraction { + z-index: 99999999 !important; + position: absolute; + background-color: #fff; + opacity: 0; + } + .introjs-relativePosition { + position: relative; + } + .introjs-helperLayer { + box-sizing: content-box; + position: absolute; + z-index: 9999998; + border-radius: 4px; + transition: all 0.3s ease-out; + } + .introjs-helperLayer * { + box-sizing: content-box; + } + .introjs-helperLayer :before { + box-sizing: content-box; + } + .introjs-helperLayer :after { + box-sizing: content-box; + } + .introjs-tooltipReferenceLayer { + font-family: "Helvetica Neue", Inter, ui-sans-serif, "Apple Color Emoji", + Helvetica, Arial, sans-serif; + box-sizing: content-box; + position: absolute; + visibility: hidden; + z-index: 100000000; + background-color: transparent; + transition: all 0.3s ease-out; + } + .introjs-tooltipReferenceLayer * { + font-family: "Helvetica Neue", Inter, ui-sans-serif, "Apple Color Emoji", + Helvetica, Arial, sans-serif; + } + .introjs-helperNumberLayer { + font-family: "Helvetica Neue", Inter, ui-sans-serif, "Apple Color Emoji", + Helvetica, Arial, sans-serif; + color: #9e9e9e; + text-align: center; + padding-top: 10px; + padding-bottom: 10px; + } + .introjs-arrow { + border: 5px solid transparent; + content: ""; + position: absolute; + } + .introjs-arrow.top { + top: -10px; + left: 10px; + border-bottom-color: #fff; + } + .introjs-arrow.top-right { + top: -10px; + right: 10px; + border-bottom-color: #fff; + } + .introjs-arrow.top-middle { + top: -10px; + left: 50%; + margin-left: -5px; + border-bottom-color: #fff; + } + .introjs-arrow.right { + right: -10px; + top: 10px; + border-left-color: #fff; + } + .introjs-arrow.right-bottom { + bottom: 10px; + right: -10px; + border-left-color: #fff; + } + .introjs-arrow.bottom { + bottom: -10px; + left: 10px; + border-top-color: #fff; + } + .introjs-arrow.bottom-right { + bottom: -10px; + right: 10px; + border-top-color: #fff; + } + .introjs-arrow.bottom-middle { + bottom: -10px; + left: 50%; + margin-left: -5px; + border-top-color: #fff; + } + .introjs-arrow.left { + left: -10px; + top: 10px; + border-right-color: #fff; + } + .introjs-arrow.left-bottom { + left: -10px; + bottom: 10px; + border-right-color: #fff; + } + .introjs-tooltip { + box-sizing: content-box; + position: absolute; + visibility: visible; + background-color: #fff; + min-width: 250px; + max-width: 300px; + border-radius: 5px; + box-shadow: 0 3px 30px rgba(33, 33, 33, 0.3); + transition: opacity 0.1s ease-out; + } + .introjs-tooltiptext { + padding: 20px; + } + .introjs-dontShowAgain { + padding-left: 20px; + padding-right: 20px; + } + .introjs-dontShowAgain input { + padding: 0; + margin: 0; + margin-bottom: 2px; + display: inline; + width: 10px; + height: 10px; + } + .introjs-dontShowAgain label { + font-size: 14px; + display: inline-block; + font-weight: 400; + margin: 0 0 0 5px; + padding: 0; + background-color: #fff; + color: #616161; + -webkit-user-select: none; + user-select: none; + } + .introjs-tooltip-title { + font-size: 18px; + width: 90%; + min-height: 1.5em; + margin: 0; + padding: 0; + font-weight: 700; + line-height: 1.5; + } + .introjs-tooltip-header { + position: relative; + padding-left: 20px; + padding-right: 20px; + padding-top: 10px; + min-height: 1.5em; + } + .introjs-tooltipbuttons { + border-top: 1px solid #e0e0e0; + padding: 10px; + text-align: right; + white-space: nowrap; + } + .introjs-tooltipbuttons:after { + content: ""; + visibility: hidden; + display: block; + height: 0; + clear: both; + } + .introjs-button { + box-sizing: content-box; + position: relative; + overflow: visible; + padding: 0.5rem 1rem; + border: 1px solid #bdbdbd; + text-decoration: none; + text-shadow: 1px 1px 0 #fff; + font-size: 14px; + color: #424242; + white-space: nowrap; + cursor: pointer; + outline: 0; + background-color: #f4f4f4; + border-radius: 0.2em; + zoom: 1; + display: inline; + } + .introjs-button:hover { + outline: 0; + text-decoration: none; + border-color: #9e9e9e; + background-color: #e0e0e0; + color: #212121; + } + .introjs-button:focus { + outline: 0; + text-decoration: none; + background-color: #eee; + box-shadow: 0 0 0 0.2rem rgba(158, 158, 158, 0.5); + border: 1px solid #616161; + color: #212121; + } + .introjs-button:active { + outline: 0; + text-decoration: none; + background-color: #e0e0e0; + border-color: #9e9e9e; + color: #212121; + } + .introjs-button::-moz-focus-inner { + padding: 0; + border: 0; + } + .introjs-skipbutton { + position: absolute; + top: 0; + right: 0; + display: inline-block; + width: 45px; + height: 45px; + line-height: 45px; + color: #616161; + font-size: 22px; + cursor: pointer; + font-weight: 700; + text-align: center; + text-decoration: none; + } + .introjs-skipbutton:focus, + .introjs-skipbutton:hover { + color: #212121; + outline: 0; + text-decoration: none; + } + .introjs-prevbutton { + float: left; + } + .introjs-nextbutton { + float: right; + } + .introjs-disabled { + color: #9e9e9e; + border-color: #bdbdbd; + box-shadow: none; + cursor: default; + background-color: #f4f4f4; + background-image: none; + text-decoration: none; + } + .introjs-disabled:focus, + .introjs-disabled:hover { + color: #9e9e9e; + border-color: #bdbdbd; + box-shadow: none; + cursor: default; + background-color: #f4f4f4; + background-image: none; + text-decoration: none; + } + .introjs-hidden { + display: none; + } + .introjs-bullets { + text-align: center; + padding-top: 10px; + padding-bottom: 10px; + } + .introjs-bullets ul { + box-sizing: content-box; + clear: both; + margin: 0 auto 0; + padding: 0; + display: inline-block; + } + .introjs-bullets ul li { + box-sizing: content-box; + list-style: none; + float: left; + margin: 0 2px; + } + .introjs-bullets ul li a { + transition: width 0.1s ease-in; + box-sizing: content-box; + display: block; + width: 6px; + height: 6px; + background: #ccc; + border-radius: 10px; + text-decoration: none; + cursor: pointer; + } + .introjs-bullets ul li a:focus, + .introjs-bullets ul li a:hover { + width: 15px; + background: #999; + text-decoration: none; + outline: 0; + } + .introjs-bullets ul li a.active { + width: 15px; + background: #999; + } + .introjs-progress { + box-sizing: content-box; + overflow: hidden; + height: 10px; + margin: 10px; + border-radius: 4px; + background-color: #e0e0e0; + } + .introjs-progressbar { + box-sizing: content-box; + float: left; + width: 0%; + height: 100%; + font-size: 10px; + line-height: 10px; + text-align: center; + background-color: #08c; + } + .introjsFloatingElement { + position: absolute; + height: 0; + width: 0; + left: 50%; + top: 50%; + } + .introjs-fixedTooltip { + position: fixed; + } + .introjs-hint { + box-sizing: content-box; + position: absolute; + background: 0 0; + width: 20px; + height: 15px; + cursor: pointer; + } + .introjs-hint:focus { + border: 0; + outline: 0; + } + .introjs-hint:hover > .introjs-hint-pulse { + background-color: rgba(60, 60, 60, 0.57); + } + .introjs-hidehint { + display: none; + } + .introjs-fixedhint { + position: fixed; + } + @keyframes introjspulse { + 0% { + transform: scale(0.95); + box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.7); + } + 70% { + transform: scale(1); + box-shadow: 0 0 0 10px transparent; + } + 100% { + transform: scale(0.95); + box-shadow: 0 0 0 0 transparent; + } + } + .introjs-hint-pulse { + box-sizing: content-box; + width: 15px; + height: 15px; + border-radius: 30px; + background-color: rgba(136, 136, 136, 0.24); + z-index: 10; + position: absolute; + transition: all 0.2s ease-out; + animation: introjspulse 2s infinite; + } + .introjs-hint-no-anim .introjs-hint-pulse { + animation: none; + } + .introjs-hint-dot { + box-sizing: content-box; + background: 0 0; + border-radius: 60px; + height: 50px; + width: 50px; + position: absolute; + top: -18px; + left: -18px; + z-index: 1; + opacity: 0; + } + /*# sourceMappingURL=introjs.css.map */ \ No newline at end of file diff --git a/dashboard/public/css/main.css b/dashboard/public/css/main.css index 65d5da96..b4ff989d 100644 --- a/dashboard/public/css/main.css +++ b/dashboard/public/css/main.css @@ -875,3 +875,117 @@ padding-left: 0px; } } +.introjs-overlay { + background-color: #000 !important; + opacity: .8 !important; +} + +.introjs-tooltip { + font-family: "Helvetica Neue",Helvetica,Arial,sans-serif !important; + border-radius: 6px !important; + padding: 2px 1px !important; + font-size: 14px !important; +} + +.introjs-helperLayer{ + background: inherit !important; + opacity: 0.6 !important; +} + +.customTooltip .introjs-tooltip-header { + font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; + color : #ffffff; + text-shadow: none; + background-color: #808080; + margin: 0; + padding: 5px 10px; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; +} + +.customTooltip .introjs-tooltip-title { + font-size: 14px; + padding: 0px 8px; + font-weight: 800; +} + +.customTooltip .introjs-tooltiptext { + color: #000000; + line-height: 1.42857143; +} + +.customTooltip .introjs-skipbutton { + float: right; + cursor: pointer; + background-image: url(../icons/dialog-cancel.svg); + width: 25px; + height: 25px; + background-size: 25px 25px; + margin-top: 2px; + padding: 0px; + text-indent: 100%; + white-space: nowrap; + overflow: hidden; +} + +.customTooltip .introjs-nextbutton::before { + content: ""; + margin-right: 6px; + background-image: url(../icons/go-right.svg); + width: 20px; + height: 20px; + background-size: 20px 20px; +} + +.customTooltip .introjs-prevbutton::before { + content: ""; + margin-right: 6px; + background-image: url(../icons/go-left.svg); + width: 20px; + height: 20px; + background-size: 20px 20px; +} + +.customTooltip .introjs-tooltipbuttons { + display: flex; + flex-wrap:wrap; + justify-content: center; + align-items: center; + cursor: pointer; + border-top: 0px; + padding: 0px; + text-align: center; + white-space: normal; +} + +.customTooltip .introjs-button { + text-shadow: none; + border-radius: 22px; + margin: 5px 8px 8px 8px; + width: fit-content; + background-color: #808080 !important; + display: flex !important; + align-items: center !important; + color: white !important; + padding: 6px 20px 6px 10px; + border: 0px; +} + +.customTooltip .introjs-button:focus { + -webkit-box-shadow: 0 0 0 0rem rgba(158, 158, 158, .5); + box-shadow: 0 0 0 0rem rgba(158, 158, 158, .5); + border: 0px; + background-color: #808080 !important; +} + +.customTooltip .introjs-disabled { + color: black !important; + border: 0px; + opacity: .65; +} + +.customTooltip .introjs-disabled:focus { + -webkit-box-shadow: 0 0 0 0rem rgba(158, 158, 158, .5); + box-shadow: 0 0 0 0rem rgba(158, 158, 158, .5); + border: 0px; +} diff --git a/dashboard/public/icons/dialog-cancel.svg b/dashboard/public/icons/dialog-cancel.svg new file mode 100644 index 00000000..dab4ae2d --- /dev/null +++ b/dashboard/public/icons/dialog-cancel.svg @@ -0,0 +1,6 @@ + + +]> + + \ No newline at end of file diff --git a/dashboard/public/icons/go-left.svg b/dashboard/public/icons/go-left.svg new file mode 100644 index 00000000..cd0fb99e --- /dev/null +++ b/dashboard/public/icons/go-left.svg @@ -0,0 +1,8 @@ + + +]> + + + + diff --git a/dashboard/public/icons/go-right.svg b/dashboard/public/icons/go-right.svg new file mode 100644 index 00000000..c03bc795 --- /dev/null +++ b/dashboard/public/icons/go-right.svg @@ -0,0 +1,35 @@ + + + + + + + \ No newline at end of file diff --git a/dashboard/public/js/intro.js b/dashboard/public/js/intro.js new file mode 100644 index 00000000..2081c055 --- /dev/null +++ b/dashboard/public/js/intro.js @@ -0,0 +1,3809 @@ +/*! + * Intro.js v6.0.0 + * https://introjs.com + * + * Copyright (C) 2012-2022 Afshin Mehrabani (@afshinmeh). + * https://introjs.com + * + * Date: Sun, 10 Jul 2022 10:05:59 GMT + */ +!(function (t, e) { + "object" == typeof exports && "undefined" != typeof module + ? (module.exports = e()) + : "function" == typeof define && define.amd + ? define(e) + : ((t = "undefined" != typeof globalThis ? globalThis : t || self).introJs = + e()); + })(this, function () { + "use strict"; + function t() { + /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ + t = function () { + return e; + }; + var e = {}, + n = Object.prototype, + r = n.hasOwnProperty, + o = "function" == typeof Symbol ? Symbol : {}, + i = o.iterator || "@@iterator", + a = o.asyncIterator || "@@asyncIterator", + s = o.toStringTag || "@@toStringTag"; + function c(t, e, n) { + return ( + Object.defineProperty(t, e, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0, + }), + t[e] + ); + } + try { + c({}, ""); + } catch (t) { + c = function (t, e, n) { + return (t[e] = n); + }; + } + function l(t, e, n, r) { + var o = e && e.prototype instanceof p ? e : p, + i = Object.create(o.prototype), + a = new S(r || []); + return ( + (i._invoke = (function (t, e, n) { + var r = "suspendedStart"; + return function (o, i) { + if ("executing" === r) + throw new Error("Generator is already running"); + if ("completed" === r) { + if ("throw" === o) throw i; + return C(); + } + for (n.method = o, n.arg = i; ; ) { + var a = n.delegate; + if (a) { + var s = x(a, n); + if (s) { + if (s === h) continue; + return s; + } + } + if ("next" === n.method) n.sent = n._sent = n.arg; + else if ("throw" === n.method) { + if ("suspendedStart" === r) throw ((r = "completed"), n.arg); + n.dispatchException(n.arg); + } else "return" === n.method && n.abrupt("return", n.arg); + r = "executing"; + var c = u(t, e, n); + if ("normal" === c.type) { + if ( + ((r = n.done ? "completed" : "suspendedYield"), c.arg === h) + ) + continue; + return { value: c.arg, done: n.done }; + } + "throw" === c.type && + ((r = "completed"), (n.method = "throw"), (n.arg = c.arg)); + } + }; + })(t, n, a)), + i + ); + } + function u(t, e, n) { + try { + return { type: "normal", arg: t.call(e, n) }; + } catch (t) { + return { type: "throw", arg: t }; + } + } + e.wrap = l; + var h = {}; + function p() {} + function f() {} + function d() {} + var b = {}; + c(b, i, function () { + return this; + }); + var m = Object.getPrototypeOf, + g = m && m(m(j([]))); + g && g !== n && r.call(g, i) && (b = g); + var v = (d.prototype = p.prototype = Object.create(b)); + function y(t) { + ["next", "throw", "return"].forEach(function (e) { + c(t, e, function (t) { + return this._invoke(e, t); + }); + }); + } + function w(t, e) { + function n(o, i, a, s) { + var c = u(t[o], t, i); + if ("throw" !== c.type) { + var l = c.arg, + h = l.value; + return h && "object" == typeof h && r.call(h, "__await") + ? e.resolve(h.__await).then( + function (t) { + n("next", t, a, s); + }, + function (t) { + n("throw", t, a, s); + } + ) + : e.resolve(h).then( + function (t) { + (l.value = t), a(l); + }, + function (t) { + return n("throw", t, a, s); + } + ); + } + s(c.arg); + } + var o; + this._invoke = function (t, r) { + function i() { + return new e(function (e, o) { + n(t, r, e, o); + }); + } + return (o = o ? o.then(i, i) : i()); + }; + } + function x(t, e) { + var n = t.iterator[e.method]; + if (void 0 === n) { + if (((e.delegate = null), "throw" === e.method)) { + if ( + t.iterator.return && + ((e.method = "return"), + (e.arg = void 0), + x(t, e), + "throw" === e.method) + ) + return h; + (e.method = "throw"), + (e.arg = new TypeError( + "The iterator does not provide a 'throw' method" + )); + } + return h; + } + var r = u(n, t.iterator, e.arg); + if ("throw" === r.type) + return (e.method = "throw"), (e.arg = r.arg), (e.delegate = null), h; + var o = r.arg; + return o + ? o.done + ? ((e[t.resultName] = o.value), + (e.next = t.nextLoc), + "return" !== e.method && ((e.method = "next"), (e.arg = void 0)), + (e.delegate = null), + h) + : o + : ((e.method = "throw"), + (e.arg = new TypeError("iterator result is not an object")), + (e.delegate = null), + h); + } + function _(t) { + var e = { tryLoc: t[0] }; + 1 in t && (e.catchLoc = t[1]), + 2 in t && ((e.finallyLoc = t[2]), (e.afterLoc = t[3])), + this.tryEntries.push(e); + } + function k(t) { + var e = t.completion || {}; + (e.type = "normal"), delete e.arg, (t.completion = e); + } + function S(t) { + (this.tryEntries = [{ tryLoc: "root" }]), + t.forEach(_, this), + this.reset(!0); + } + function j(t) { + if (t) { + var e = t[i]; + if (e) return e.call(t); + if ("function" == typeof t.next) return t; + if (!isNaN(t.length)) { + var n = -1, + o = function e() { + for (; ++n < t.length; ) + if (r.call(t, n)) return (e.value = t[n]), (e.done = !1), e; + return (e.value = void 0), (e.done = !0), e; + }; + return (o.next = o); + } + } + return { next: C }; + } + function C() { + return { value: void 0, done: !0 }; + } + return ( + (f.prototype = d), + c(v, "constructor", d), + c(d, "constructor", f), + (f.displayName = c(d, s, "GeneratorFunction")), + (e.isGeneratorFunction = function (t) { + var e = "function" == typeof t && t.constructor; + return ( + !!e && (e === f || "GeneratorFunction" === (e.displayName || e.name)) + ); + }), + (e.mark = function (t) { + return ( + Object.setPrototypeOf + ? Object.setPrototypeOf(t, d) + : ((t.__proto__ = d), c(t, s, "GeneratorFunction")), + (t.prototype = Object.create(v)), + t + ); + }), + (e.awrap = function (t) { + return { __await: t }; + }), + y(w.prototype), + c(w.prototype, a, function () { + return this; + }), + (e.AsyncIterator = w), + (e.async = function (t, n, r, o, i) { + void 0 === i && (i = Promise); + var a = new w(l(t, n, r, o), i); + return e.isGeneratorFunction(n) + ? a + : a.next().then(function (t) { + return t.done ? t.value : a.next(); + }); + }), + y(v), + c(v, s, "Generator"), + c(v, i, function () { + return this; + }), + c(v, "toString", function () { + return "[object Generator]"; + }), + (e.keys = function (t) { + var e = []; + for (var n in t) e.push(n); + return ( + e.reverse(), + function n() { + for (; e.length; ) { + var r = e.pop(); + if (r in t) return (n.value = r), (n.done = !1), n; + } + return (n.done = !0), n; + } + ); + }), + (e.values = j), + (S.prototype = { + constructor: S, + reset: function (t) { + if ( + ((this.prev = 0), + (this.next = 0), + (this.sent = this._sent = void 0), + (this.done = !1), + (this.delegate = null), + (this.method = "next"), + (this.arg = void 0), + this.tryEntries.forEach(k), + !t) + ) + for (var e in this) + "t" === e.charAt(0) && + r.call(this, e) && + !isNaN(+e.slice(1)) && + (this[e] = void 0); + }, + stop: function () { + this.done = !0; + var t = this.tryEntries[0].completion; + if ("throw" === t.type) throw t.arg; + return this.rval; + }, + dispatchException: function (t) { + if (this.done) throw t; + var e = this; + function n(n, r) { + return ( + (a.type = "throw"), + (a.arg = t), + (e.next = n), + r && ((e.method = "next"), (e.arg = void 0)), + !!r + ); + } + for (var o = this.tryEntries.length - 1; o >= 0; --o) { + var i = this.tryEntries[o], + a = i.completion; + if ("root" === i.tryLoc) return n("end"); + if (i.tryLoc <= this.prev) { + var s = r.call(i, "catchLoc"), + c = r.call(i, "finallyLoc"); + if (s && c) { + if (this.prev < i.catchLoc) return n(i.catchLoc, !0); + if (this.prev < i.finallyLoc) return n(i.finallyLoc); + } else if (s) { + if (this.prev < i.catchLoc) return n(i.catchLoc, !0); + } else { + if (!c) + throw new Error("try statement without catch or finally"); + if (this.prev < i.finallyLoc) return n(i.finallyLoc); + } + } + } + }, + abrupt: function (t, e) { + for (var n = this.tryEntries.length - 1; n >= 0; --n) { + var o = this.tryEntries[n]; + if ( + o.tryLoc <= this.prev && + r.call(o, "finallyLoc") && + this.prev < o.finallyLoc + ) { + var i = o; + break; + } + } + i && + ("break" === t || "continue" === t) && + i.tryLoc <= e && + e <= i.finallyLoc && + (i = null); + var a = i ? i.completion : {}; + return ( + (a.type = t), + (a.arg = e), + i + ? ((this.method = "next"), (this.next = i.finallyLoc), h) + : this.complete(a) + ); + }, + complete: function (t, e) { + if ("throw" === t.type) throw t.arg; + return ( + "break" === t.type || "continue" === t.type + ? (this.next = t.arg) + : "return" === t.type + ? ((this.rval = this.arg = t.arg), + (this.method = "return"), + (this.next = "end")) + : "normal" === t.type && e && (this.next = e), + h + ); + }, + finish: function (t) { + for (var e = this.tryEntries.length - 1; e >= 0; --e) { + var n = this.tryEntries[e]; + if (n.finallyLoc === t) + return this.complete(n.completion, n.afterLoc), k(n), h; + } + }, + catch: function (t) { + for (var e = this.tryEntries.length - 1; e >= 0; --e) { + var n = this.tryEntries[e]; + if (n.tryLoc === t) { + var r = n.completion; + if ("throw" === r.type) { + var o = r.arg; + k(n); + } + return o; + } + } + throw new Error("illegal catch attempt"); + }, + delegateYield: function (t, e, n) { + return ( + (this.delegate = { iterator: j(t), resultName: e, nextLoc: n }), + "next" === this.method && (this.arg = void 0), + h + ); + }, + }), + e + ); + } + function e(t) { + return ( + (e = + "function" == typeof Symbol && "symbol" == typeof Symbol.iterator + ? function (t) { + return typeof t; + } + : function (t) { + return t && + "function" == typeof Symbol && + t.constructor === Symbol && + t !== Symbol.prototype + ? "symbol" + : typeof t; + }), + e(t) + ); + } + function n(t, e, n, r, o, i, a) { + try { + var s = t[i](a), + c = s.value; + } catch (t) { + return void n(t); + } + s.done ? e(c) : Promise.resolve(c).then(r, o); + } + function r(t) { + return function () { + var e = this, + r = arguments; + return new Promise(function (o, i) { + var a = t.apply(e, r); + function s(t) { + n(a, o, i, s, c, "next", t); + } + function c(t) { + n(a, o, i, s, c, "throw", t); + } + s(void 0); + }); + }; + } + function o(t, e, n) { + return ( + e in t + ? Object.defineProperty(t, e, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0, + }) + : (t[e] = n), + t + ); + } + function i(t, e) { + return ( + (function (t) { + if (Array.isArray(t)) return t; + })(t) || + (function (t, e) { + var n = + null == t + ? null + : ("undefined" != typeof Symbol && t[Symbol.iterator]) || + t["@@iterator"]; + if (null == n) return; + var r, + o, + i = [], + a = !0, + s = !1; + try { + for ( + n = n.call(t); + !(a = (r = n.next()).done) && + (i.push(r.value), !e || i.length !== e); + a = !0 + ); + } catch (t) { + (s = !0), (o = t); + } finally { + try { + a || null == n.return || n.return(); + } finally { + if (s) throw o; + } + } + return i; + })(t, e) || + (function (t, e) { + if (!t) return; + if ("string" == typeof t) return a(t, e); + var n = Object.prototype.toString.call(t).slice(8, -1); + "Object" === n && t.constructor && (n = t.constructor.name); + if ("Map" === n || "Set" === n) return Array.from(t); + if ( + "Arguments" === n || + /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) + ) + return a(t, e); + })(t, e) || + (function () { + throw new TypeError( + "Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method." + ); + })() + ); + } + function a(t, e) { + (null == e || e > t.length) && (e = t.length); + for (var n = 0, r = new Array(e); n < e; n++) r[n] = t[n]; + return r; + } + var s = (function () { + var t = {}; + return function (e) { + var n = + arguments.length > 1 && void 0 !== arguments[1] + ? arguments[1] + : "introjs-stamp"; + return (t[n] = t[n] || 0), void 0 === e[n] && (e[n] = t[n]++), e[n]; + }; + })(); + function c(t, e, n) { + if (t) for (var r = 0, o = t.length; r < o; r++) e(t[r], r); + "function" == typeof n && n(); + } + var l = new (function () { + var t = "introjs_event"; + (this._id = function (t, e, n, r) { + return e + s(n) + (r ? "_".concat(s(r)) : ""); + }), + (this.on = function (e, n, r, o, i) { + var a = this._id.apply(this, arguments), + s = function (t) { + return r.call(o || e, t || window.event); + }; + "addEventListener" in e + ? e.addEventListener(n, s, i) + : "attachEvent" in e && e.attachEvent("on".concat(n), s), + (e[t] = e[t] || {}), + (e[t][a] = s); + }), + (this.off = function (e, n, r, o, i) { + var a = this._id.apply(this, arguments), + s = e[t] && e[t][a]; + s && + ("removeEventListener" in e + ? e.removeEventListener(n, s, i) + : "detachEvent" in e && e.detachEvent("on".concat(n), s), + (e[t][a] = null)); + }); + })(); + function u(t, e) { + if (t instanceof SVGElement) { + var n = t.getAttribute("class") || ""; + n.match(e) || t.setAttribute("class", "".concat(n, " ").concat(e)); + } else { + if (void 0 !== t.classList) + c(e.split(" "), function (e) { + t.classList.add(e); + }); + else t.className.match(e) || (t.className += " ".concat(e)); + } + } + function h(t, e) { + var n = ""; + return ( + t.currentStyle + ? (n = t.currentStyle[e]) + : document.defaultView && + document.defaultView.getComputedStyle && + (n = document.defaultView + .getComputedStyle(t, null) + .getPropertyValue(e)), + n && n.toLowerCase ? n.toLowerCase() : n + ); + } + function p(t) { + var e = t.element; + u(e, "introjs-showElement"); + var n = h(e, "position"); + "absolute" !== n && + "relative" !== n && + "sticky" !== n && + "fixed" !== n && + u(e, "introjs-relativePosition"); + } + function f(t) { + var e = t.element; + if (this._options.scrollToElement) { + var n = (function (t) { + var e = window.getComputedStyle(t), + n = "absolute" === e.position, + r = /(auto|scroll)/; + if ("fixed" === e.position) return document.body; + for (var o = t; (o = o.parentElement); ) + if ( + ((e = window.getComputedStyle(o)), + (!n || "static" !== e.position) && + r.test(e.overflow + e.overflowY + e.overflowX)) + ) + return o; + return document.body; + })(e); + n !== document.body && (n.scrollTop = e.offsetTop - n.offsetTop); + } + } + function d() { + if (void 0 !== window.innerWidth) + return { width: window.innerWidth, height: window.innerHeight }; + var t = document.documentElement; + return { width: t.clientWidth, height: t.clientHeight }; + } + function b(t, e, n) { + var r, + o = e.element; + if ( + "off" !== t && + this._options.scrollToElement && + ((r = + "tooltip" === t + ? n.getBoundingClientRect() + : o.getBoundingClientRect()), + !(function (t) { + var e = t.getBoundingClientRect(); + return ( + e.top >= 0 && + e.left >= 0 && + e.bottom + 80 <= window.innerHeight && + e.right <= window.innerWidth + ); + })(o)) + ) { + var i = d().height; + r.bottom - (r.bottom - r.top) < 0 || o.clientHeight > i + ? window.scrollBy( + 0, + r.top - (i / 2 - r.height / 2) - this._options.scrollPadding + ) + : window.scrollBy( + 0, + r.top - (i / 2 - r.height / 2) + this._options.scrollPadding + ); + } + } + function m(t) { + t.setAttribute("role", "button"), (t.tabIndex = 0); + } + function g(t) { + var e = t.parentNode; + return ( + !(!e || "HTML" === e.nodeName) && ("fixed" === h(t, "position") || g(e)) + ); + } + function v(t, e) { + var n = document.body, + r = document.documentElement, + o = window.pageYOffset || r.scrollTop || n.scrollTop, + i = window.pageXOffset || r.scrollLeft || n.scrollLeft; + e = e || n; + var a = t.getBoundingClientRect(), + s = e.getBoundingClientRect(), + c = h(e, "position"), + l = { width: a.width, height: a.height }; + return ("body" !== e.tagName.toLowerCase() && "relative" === c) || + "sticky" === c + ? Object.assign(l, { top: a.top - s.top, left: a.left - s.left }) + : g(t) + ? Object.assign(l, { top: a.top, left: a.left }) + : Object.assign(l, { top: a.top + o, left: a.left + i }); + } + var y = function (t) { + try { + return !!t(); + } catch (t) { + return !0; + } + }, + w = !y(function () { + var t = function () {}.bind(); + return "function" != typeof t || t.hasOwnProperty("prototype"); + }), + x = Function.prototype, + _ = x.apply, + k = x.call, + S = + ("object" == typeof Reflect && Reflect.apply) || + (w + ? k.bind(_) + : function () { + return k.apply(_, arguments); + }), + j = Function.prototype.call, + C = w + ? j.bind(j) + : function () { + return j.apply(j, arguments); + }, + A = Function.prototype, + E = A.bind, + N = A.call, + I = w && E.bind(N, N), + L = w + ? function (t) { + return t && I(t); + } + : function (t) { + return ( + t && + function () { + return N.apply(t, arguments); + } + ); + }, + T = + "undefined" != typeof globalThis + ? globalThis + : "undefined" != typeof window + ? window + : "undefined" != typeof global + ? global + : "undefined" != typeof self + ? self + : {}; + function O(t, e) { + return t((e = { exports: {} }), e.exports), e.exports; + } + var P, + R, + q = function (t) { + return t && t.Math == Math && t; + }, + B = + q("object" == typeof globalThis && globalThis) || + q("object" == typeof window && window) || + q("object" == typeof self && self) || + q("object" == typeof T && T) || + (function () { + return this; + })() || + Function("return this")(), + M = !y(function () { + return ( + 7 != + Object.defineProperty({}, 1, { + get: function () { + return 7; + }, + })[1] + ); + }), + H = {}.propertyIsEnumerable, + F = Object.getOwnPropertyDescriptor, + D = { + f: + F && !H.call({ 1: 2 }, 1) + ? function (t) { + var e = F(this, t); + return !!e && e.enumerable; + } + : H, + }, + $ = function (t, e) { + return { + enumerable: !(1 & t), + configurable: !(2 & t), + writable: !(4 & t), + value: e, + }; + }, + G = L({}.toString), + z = L("".slice), + W = function (t) { + return z(G(t), 8, -1); + }, + V = Object, + U = L("".split), + Y = y(function () { + return !V("z").propertyIsEnumerable(0); + }) + ? function (t) { + return "String" == W(t) ? U(t, "") : V(t); + } + : V, + K = TypeError, + X = function (t) { + if (null == t) throw K("Can't call method on " + t); + return t; + }, + Q = function (t) { + return Y(X(t)); + }, + J = function (t) { + return "function" == typeof t; + }, + Z = function (t) { + return "object" == typeof t ? null !== t : J(t); + }, + tt = function (t) { + return J(t) ? t : void 0; + }, + et = function (t, e) { + return arguments.length < 2 ? tt(B[t]) : B[t] && B[t][e]; + }, + nt = L({}.isPrototypeOf), + rt = et("navigator", "userAgent") || "", + ot = B.process, + it = B.Deno, + at = (ot && ot.versions) || (it && it.version), + st = at && at.v8; + st && (R = (P = st.split("."))[0] > 0 && P[0] < 4 ? 1 : +(P[0] + P[1])), + !R && + rt && + (!(P = rt.match(/Edge\/(\d+)/)) || P[1] >= 74) && + (P = rt.match(/Chrome\/(\d+)/)) && + (R = +P[1]); + var ct = R, + lt = + !!Object.getOwnPropertySymbols && + !y(function () { + var t = Symbol(); + return ( + !String(t) || + !(Object(t) instanceof Symbol) || + (!Symbol.sham && ct && ct < 41) + ); + }), + ut = lt && !Symbol.sham && "symbol" == typeof Symbol.iterator, + ht = Object, + pt = ut + ? function (t) { + return "symbol" == typeof t; + } + : function (t) { + var e = et("Symbol"); + return J(e) && nt(e.prototype, ht(t)); + }, + ft = String, + dt = TypeError, + bt = function (t) { + if (J(t)) return t; + throw dt( + (function (t) { + try { + return ft(t); + } catch (t) { + return "Object"; + } + })(t) + " is not a function" + ); + }, + mt = function (t, e) { + var n = t[e]; + return null == n ? void 0 : bt(n); + }, + gt = TypeError, + vt = Object.defineProperty, + yt = function (t, e) { + try { + vt(B, t, { value: e, configurable: !0, writable: !0 }); + } catch (n) { + B[t] = e; + } + return e; + }, + wt = "__core-js_shared__", + xt = B[wt] || yt(wt, {}), + _t = O(function (t) { + (t.exports = function (t, e) { + return xt[t] || (xt[t] = void 0 !== e ? e : {}); + })("versions", []).push({ + version: "3.23.3", + mode: "global", + copyright: "© 2014-2022 Denis Pushkarev (zloirock.ru)", + license: "https://github.com/zloirock/core-js/blob/v3.23.3/LICENSE", + source: "https://github.com/zloirock/core-js", + }); + }), + kt = Object, + St = function (t) { + return kt(X(t)); + }, + jt = L({}.hasOwnProperty), + Ct = + Object.hasOwn || + function (t, e) { + return jt(St(t), e); + }, + At = 0, + Et = Math.random(), + Nt = L((1).toString), + It = function (t) { + return "Symbol(" + (void 0 === t ? "" : t) + ")_" + Nt(++At + Et, 36); + }, + Lt = _t("wks"), + Tt = B.Symbol, + Ot = Tt && Tt.for, + Pt = ut ? Tt : (Tt && Tt.withoutSetter) || It, + Rt = function (t) { + if (!Ct(Lt, t) || (!lt && "string" != typeof Lt[t])) { + var e = "Symbol." + t; + lt && Ct(Tt, t) ? (Lt[t] = Tt[t]) : (Lt[t] = ut && Ot ? Ot(e) : Pt(e)); + } + return Lt[t]; + }, + qt = TypeError, + Bt = Rt("toPrimitive"), + Mt = function (t, e) { + if (!Z(t) || pt(t)) return t; + var n, + r = mt(t, Bt); + if (r) { + if ((void 0 === e && (e = "default"), (n = C(r, t, e)), !Z(n) || pt(n))) + return n; + throw qt("Can't convert object to primitive value"); + } + return ( + void 0 === e && (e = "number"), + (function (t, e) { + var n, r; + if ("string" === e && J((n = t.toString)) && !Z((r = C(n, t)))) + return r; + if (J((n = t.valueOf)) && !Z((r = C(n, t)))) return r; + if ("string" !== e && J((n = t.toString)) && !Z((r = C(n, t)))) + return r; + throw gt("Can't convert object to primitive value"); + })(t, e) + ); + }, + Ht = function (t) { + var e = Mt(t, "string"); + return pt(e) ? e : e + ""; + }, + Ft = B.document, + Dt = Z(Ft) && Z(Ft.createElement), + $t = function (t) { + return Dt ? Ft.createElement(t) : {}; + }, + Gt = + !M && + !y(function () { + return ( + 7 != + Object.defineProperty($t("div"), "a", { + get: function () { + return 7; + }, + }).a + ); + }), + zt = Object.getOwnPropertyDescriptor, + Wt = { + f: M + ? zt + : function (t, e) { + if (((t = Q(t)), (e = Ht(e)), Gt)) + try { + return zt(t, e); + } catch (t) {} + if (Ct(t, e)) return $(!C(D.f, t, e), t[e]); + }, + }, + Vt = + M && + y(function () { + return ( + 42 != + Object.defineProperty(function () {}, "prototype", { + value: 42, + writable: !1, + }).prototype + ); + }), + Ut = String, + Yt = TypeError, + Kt = function (t) { + if (Z(t)) return t; + throw Yt(Ut(t) + " is not an object"); + }, + Xt = TypeError, + Qt = Object.defineProperty, + Jt = Object.getOwnPropertyDescriptor, + Zt = "enumerable", + te = "configurable", + ee = "writable", + ne = { + f: M + ? Vt + ? function (t, e, n) { + if ( + (Kt(t), + (e = Ht(e)), + Kt(n), + "function" == typeof t && + "prototype" === e && + "value" in n && + ee in n && + !n.writable) + ) { + var r = Jt(t, e); + r && + r.writable && + ((t[e] = n.value), + (n = { + configurable: te in n ? n.configurable : r.configurable, + enumerable: Zt in n ? n.enumerable : r.enumerable, + writable: !1, + })); + } + return Qt(t, e, n); + } + : Qt + : function (t, e, n) { + if ((Kt(t), (e = Ht(e)), Kt(n), Gt)) + try { + return Qt(t, e, n); + } catch (t) {} + if ("get" in n || "set" in n) throw Xt("Accessors not supported"); + return "value" in n && (t[e] = n.value), t; + }, + }, + re = M + ? function (t, e, n) { + return ne.f(t, e, $(1, n)); + } + : function (t, e, n) { + return (t[e] = n), t; + }, + oe = Function.prototype, + ie = M && Object.getOwnPropertyDescriptor, + ae = Ct(oe, "name"), + se = { + EXISTS: ae, + PROPER: ae && "something" === function () {}.name, + CONFIGURABLE: ae && (!M || (M && ie(oe, "name").configurable)), + }, + ce = L(Function.toString); + J(xt.inspectSource) || + (xt.inspectSource = function (t) { + return ce(t); + }); + var le, + ue, + he, + pe = xt.inspectSource, + fe = B.WeakMap, + de = J(fe) && /native code/.test(pe(fe)), + be = _t("keys"), + me = function (t) { + return be[t] || (be[t] = It(t)); + }, + ge = {}, + ve = "Object already initialized", + ye = B.TypeError, + we = B.WeakMap; + if (de || xt.state) { + var xe = xt.state || (xt.state = new we()), + _e = L(xe.get), + ke = L(xe.has), + Se = L(xe.set); + (le = function (t, e) { + if (ke(xe, t)) throw new ye(ve); + return (e.facade = t), Se(xe, t, e), e; + }), + (ue = function (t) { + return _e(xe, t) || {}; + }), + (he = function (t) { + return ke(xe, t); + }); + } else { + var je = me("state"); + (ge[je] = !0), + (le = function (t, e) { + if (Ct(t, je)) throw new ye(ve); + return (e.facade = t), re(t, je, e), e; + }), + (ue = function (t) { + return Ct(t, je) ? t[je] : {}; + }), + (he = function (t) { + return Ct(t, je); + }); + } + var Ce = { + set: le, + get: ue, + has: he, + enforce: function (t) { + return he(t) ? ue(t) : le(t, {}); + }, + getterFor: function (t) { + return function (e) { + var n; + if (!Z(e) || (n = ue(e)).type !== t) + throw ye("Incompatible receiver, " + t + " required"); + return n; + }; + }, + }, + Ae = O(function (t) { + var e = se.CONFIGURABLE, + n = Ce.enforce, + r = Ce.get, + o = Object.defineProperty, + i = + M && + !y(function () { + return 8 !== o(function () {}, "length", { value: 8 }).length; + }), + a = String(String).split("String"), + s = (t.exports = function (t, r, s) { + "Symbol(" === String(r).slice(0, 7) && + (r = "[" + String(r).replace(/^Symbol\(([^)]*)\)/, "$1") + "]"), + s && s.getter && (r = "get " + r), + s && s.setter && (r = "set " + r), + (!Ct(t, "name") || (e && t.name !== r)) && + (M ? o(t, "name", { value: r, configurable: !0 }) : (t.name = r)), + i && + s && + Ct(s, "arity") && + t.length !== s.arity && + o(t, "length", { value: s.arity }); + try { + s && Ct(s, "constructor") && s.constructor + ? M && o(t, "prototype", { writable: !1 }) + : t.prototype && (t.prototype = void 0); + } catch (t) {} + var c = n(t); + return ( + Ct(c, "source") || + (c.source = a.join("string" == typeof r ? r : "")), + t + ); + }); + Function.prototype.toString = s(function () { + return (J(this) && r(this).source) || pe(this); + }, "toString"); + }), + Ee = function (t, e, n, r) { + r || (r = {}); + var o = r.enumerable, + i = void 0 !== r.name ? r.name : e; + if ((J(n) && Ae(n, i, r), r.global)) o ? (t[e] = n) : yt(e, n); + else { + try { + r.unsafe ? t[e] && (o = !0) : delete t[e]; + } catch (t) {} + o + ? (t[e] = n) + : ne.f(t, e, { + value: n, + enumerable: !1, + configurable: !r.nonConfigurable, + writable: !r.nonWritable, + }); + } + return t; + }, + Ne = Math.ceil, + Ie = Math.floor, + Le = + Math.trunc || + function (t) { + var e = +t; + return (e > 0 ? Ie : Ne)(e); + }, + Te = function (t) { + var e = +t; + return e != e || 0 === e ? 0 : Le(e); + }, + Oe = Math.max, + Pe = Math.min, + Re = Math.min, + qe = function (t) { + return t > 0 ? Re(Te(t), 9007199254740991) : 0; + }, + Be = function (t) { + return function (e, n, r) { + var o, + i = Q(e), + a = qe(i.length), + s = (function (t, e) { + var n = Te(t); + return n < 0 ? Oe(n + e, 0) : Pe(n, e); + })(r, a); + if (t && n != n) { + for (; a > s; ) if ((o = i[s++]) != o) return !0; + } else + for (; a > s; s++) + if ((t || s in i) && i[s] === n) return t || s || 0; + return !t && -1; + }; + }, + Me = { includes: Be(!0), indexOf: Be(!1) }, + He = Me.indexOf, + Fe = L([].push), + De = function (t, e) { + var n, + r = Q(t), + o = 0, + i = []; + for (n in r) !Ct(ge, n) && Ct(r, n) && Fe(i, n); + for (; e.length > o; ) Ct(r, (n = e[o++])) && (~He(i, n) || Fe(i, n)); + return i; + }, + $e = [ + "constructor", + "hasOwnProperty", + "isPrototypeOf", + "propertyIsEnumerable", + "toLocaleString", + "toString", + "valueOf", + ], + Ge = $e.concat("length", "prototype"), + ze = { + f: + Object.getOwnPropertyNames || + function (t) { + return De(t, Ge); + }, + }, + We = { f: Object.getOwnPropertySymbols }, + Ve = L([].concat), + Ue = + et("Reflect", "ownKeys") || + function (t) { + var e = ze.f(Kt(t)), + n = We.f; + return n ? Ve(e, n(t)) : e; + }, + Ye = function (t, e, n) { + for (var r = Ue(e), o = ne.f, i = Wt.f, a = 0; a < r.length; a++) { + var s = r[a]; + Ct(t, s) || (n && Ct(n, s)) || o(t, s, i(e, s)); + } + }, + Ke = /#|\.prototype\./, + Xe = function (t, e) { + var n = Je[Qe(t)]; + return n == tn || (n != Ze && (J(e) ? y(e) : !!e)); + }, + Qe = (Xe.normalize = function (t) { + return String(t).replace(Ke, ".").toLowerCase(); + }), + Je = (Xe.data = {}), + Ze = (Xe.NATIVE = "N"), + tn = (Xe.POLYFILL = "P"), + en = Xe, + nn = Wt.f, + rn = function (t, e) { + var n, + r, + o, + i, + a, + s = t.target, + c = t.global, + l = t.stat; + if ((n = c ? B : l ? B[s] || yt(s, {}) : (B[s] || {}).prototype)) + for (r in e) { + if ( + ((i = e[r]), + (o = t.dontCallGetSet ? (a = nn(n, r)) && a.value : n[r]), + !en(c ? r : s + (l ? "." : "#") + r, t.forced) && void 0 !== o) + ) { + if (typeof i == typeof o) continue; + Ye(i, o); + } + (t.sham || (o && o.sham)) && re(i, "sham", !0), Ee(n, r, i, t); + } + }, + on = {}; + on[Rt("toStringTag")] = "z"; + var an, + sn = "[object z]" === String(on), + cn = Rt("toStringTag"), + ln = Object, + un = + "Arguments" == + W( + (function () { + return arguments; + })() + ), + hn = sn + ? W + : function (t) { + var e, n, r; + return void 0 === t + ? "Undefined" + : null === t + ? "Null" + : "string" == + typeof (n = (function (t, e) { + try { + return t[e]; + } catch (t) {} + })((e = ln(t)), cn)) + ? n + : un + ? W(e) + : "Object" == (r = W(e)) && J(e.callee) + ? "Arguments" + : r; + }, + pn = String, + fn = function (t) { + if ("Symbol" === hn(t)) + throw TypeError("Cannot convert a Symbol value to a string"); + return pn(t); + }, + dn = function () { + var t = Kt(this), + e = ""; + return ( + t.hasIndices && (e += "d"), + t.global && (e += "g"), + t.ignoreCase && (e += "i"), + t.multiline && (e += "m"), + t.dotAll && (e += "s"), + t.unicode && (e += "u"), + t.unicodeSets && (e += "v"), + t.sticky && (e += "y"), + e + ); + }, + bn = B.RegExp, + mn = y(function () { + var t = bn("a", "y"); + return (t.lastIndex = 2), null != t.exec("abcd"); + }), + gn = + mn || + y(function () { + return !bn("a", "y").sticky; + }), + vn = { + BROKEN_CARET: + mn || + y(function () { + var t = bn("^r", "gy"); + return (t.lastIndex = 2), null != t.exec("str"); + }), + MISSED_STICKY: gn, + UNSUPPORTED_Y: mn, + }, + yn = + Object.keys || + function (t) { + return De(t, $e); + }, + wn = + M && !Vt + ? Object.defineProperties + : function (t, e) { + Kt(t); + for (var n, r = Q(e), o = yn(e), i = o.length, a = 0; i > a; ) + ne.f(t, (n = o[a++]), r[n]); + return t; + }, + xn = { f: wn }, + _n = et("document", "documentElement"), + kn = me("IE_PROTO"), + Sn = function () {}, + jn = function (t) { + return " + +