dobo 2.0.0 → 2.2.0

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.
Files changed (197) hide show
  1. package/.github/FUNDING.yml +13 -0
  2. package/.github/workflows/repo-lockdown.yml +24 -0
  3. package/.jsdoc.conf.json +45 -0
  4. package/LICENSE +1 -1
  5. package/README.md +38 -19
  6. package/docs/Dobo.html +26 -0
  7. package/docs/data/search.json +1 -0
  8. package/docs/fonts/Inconsolata-Regular.ttf +0 -0
  9. package/docs/fonts/OpenSans-Regular.ttf +0 -0
  10. package/docs/fonts/WorkSans-Bold.ttf +0 -0
  11. package/docs/global.html +7 -0
  12. package/docs/index.html +3 -0
  13. package/docs/index.js.html +578 -0
  14. package/docs/lib_collect-connections.js.html +39 -0
  15. package/docs/lib_collect-drivers.js.html +52 -0
  16. package/docs/lib_collect-features.js.html +36 -0
  17. package/docs/lib_collect-schemas.js.html +94 -0
  18. package/docs/lib_index.js.html +6 -0
  19. package/docs/method_model_create.js.html +35 -0
  20. package/docs/method_model_drop.js.html +34 -0
  21. package/docs/method_model_exists.js.html +40 -0
  22. package/docs/method_record_count.js.html +69 -0
  23. package/docs/method_record_create.js.html +114 -0
  24. package/docs/method_record_find-all.js.html +44 -0
  25. package/docs/method_record_find-one.js.html +73 -0
  26. package/docs/method_record_find.js.html +118 -0
  27. package/docs/method_record_get.js.html +92 -0
  28. package/docs/method_record_remove.js.html +75 -0
  29. package/docs/method_record_update.js.html +107 -0
  30. package/docs/method_record_upsert.js.html +54 -0
  31. package/docs/method_sanitize_body.js.html +88 -0
  32. package/docs/method_sanitize_date.js.html +30 -0
  33. package/docs/method_sanitize_id.js.html +20 -0
  34. package/docs/method_validate.js.html +249 -0
  35. package/docs/module-Lib.html +3 -0
  36. package/docs/scripts/core.js +725 -0
  37. package/docs/scripts/core.min.js +23 -0
  38. package/docs/scripts/resize.js +90 -0
  39. package/docs/scripts/search.js +265 -0
  40. package/docs/scripts/search.min.js +6 -0
  41. package/docs/scripts/third-party/Apache-License-2.0.txt +202 -0
  42. package/docs/scripts/third-party/fuse.js +9 -0
  43. package/docs/scripts/third-party/hljs-line-num-original.js +366 -0
  44. package/docs/scripts/third-party/hljs-line-num.js +1 -0
  45. package/docs/scripts/third-party/hljs-original.js +5164 -0
  46. package/docs/scripts/third-party/hljs.js +1 -0
  47. package/docs/scripts/third-party/popper.js +5 -0
  48. package/docs/scripts/third-party/tippy.js +1 -0
  49. package/docs/scripts/third-party/tocbot.js +671 -0
  50. package/docs/scripts/third-party/tocbot.min.js +1 -0
  51. package/docs/static/bitcoin.jpeg +0 -0
  52. package/docs/static/home.md +25 -0
  53. package/docs/static/logo-ecosystem.png +0 -0
  54. package/docs/static/logo.png +0 -0
  55. package/docs/styles/clean-jsdoc-theme-base.css +1159 -0
  56. package/docs/styles/clean-jsdoc-theme-dark.css +412 -0
  57. package/docs/styles/clean-jsdoc-theme-light.css +482 -0
  58. package/docs/styles/clean-jsdoc-theme-scrollbar.css +30 -0
  59. package/docs/styles/clean-jsdoc-theme-without-scrollbar.min.css +1 -0
  60. package/docs/styles/clean-jsdoc-theme.min.css +1 -0
  61. package/extend/bajo/intl/en-US.json +69 -30
  62. package/extend/bajo/intl/id.json +58 -29
  63. package/extend/bajoCli/applet/clear-record.js +22 -0
  64. package/extend/bajoCli/applet/connection.js +5 -5
  65. package/extend/bajoCli/applet/count-record.js +27 -0
  66. package/extend/bajoCli/applet/create-aggregate.js +33 -0
  67. package/extend/bajoCli/applet/create-histogram.js +33 -0
  68. package/extend/bajoCli/applet/create-record.js +39 -0
  69. package/extend/bajoCli/applet/find-record.js +27 -0
  70. package/extend/bajoCli/applet/get-record.js +27 -0
  71. package/extend/bajoCli/applet/lib/post-process.js +25 -26
  72. package/extend/bajoCli/applet/model.js +22 -0
  73. package/extend/bajoCli/applet/rebuild-model.js +91 -0
  74. package/extend/bajoCli/applet/remove-record.js +27 -0
  75. package/extend/bajoCli/applet/update-record.js +44 -0
  76. package/extend/bajoCli/applet.js +0 -0
  77. package/extend/dobo/driver/memory.js +170 -0
  78. package/extend/dobo/feature/created-at.js +10 -8
  79. package/extend/dobo/feature/dt.js +0 -0
  80. package/extend/dobo/feature/immutable.js +30 -0
  81. package/extend/dobo/feature/int-id.js +0 -0
  82. package/extend/dobo/feature/removed-at.js +35 -57
  83. package/extend/dobo/feature/updated-at.js +14 -12
  84. package/extend/waibuMpa/route/attachment/@model/@id/@field/@file.js +5 -9
  85. package/extend/waibuStatic/virtual.json +0 -0
  86. package/index.js +420 -337
  87. package/lib/collect-connections.js +60 -21
  88. package/lib/collect-drivers.js +29 -35
  89. package/lib/collect-features.js +40 -0
  90. package/lib/collect-models.js +319 -0
  91. package/lib/factory/action.js +161 -0
  92. package/lib/factory/connection.js +62 -0
  93. package/lib/factory/driver.js +358 -0
  94. package/lib/factory/feature.js +33 -0
  95. package/lib/factory/model/_util.js +402 -0
  96. package/lib/factory/model/build.js +15 -0
  97. package/lib/factory/model/clear-record.js +17 -0
  98. package/lib/factory/model/count-record.js +17 -0
  99. package/lib/factory/model/create-aggregate.js +17 -0
  100. package/lib/factory/model/create-attachment.js +29 -0
  101. package/lib/factory/model/create-histogram.js +17 -0
  102. package/lib/factory/model/create-record.js +35 -0
  103. package/lib/factory/model/drop.js +15 -0
  104. package/lib/factory/model/exists.js +21 -0
  105. package/lib/factory/model/find-all-record.js +71 -0
  106. package/lib/factory/model/find-attachment.js +29 -0
  107. package/lib/factory/model/find-one-record.js +19 -0
  108. package/lib/factory/model/find-record.js +103 -0
  109. package/lib/factory/model/get-attachment.js +15 -0
  110. package/lib/factory/model/get-record.js +79 -0
  111. package/lib/factory/model/list-attachment.js +37 -0
  112. package/lib/{add-fixtures.js → factory/model/load-fixtures.js} +69 -67
  113. package/lib/factory/model/remove-attachment.js +15 -0
  114. package/lib/factory/model/remove-record.js +59 -0
  115. package/lib/factory/model/sanitize-body.js +62 -0
  116. package/lib/factory/model/sanitize-id.js +7 -0
  117. package/lib/factory/model/sanitize-record.js +26 -0
  118. package/lib/factory/model/update-attachment.js +9 -0
  119. package/lib/factory/model/update-record.js +81 -0
  120. package/lib/factory/model/upsert-record.js +95 -0
  121. package/lib/factory/model/validate.js +232 -0
  122. package/lib/factory/model.js +150 -0
  123. package/lib/index.js +3 -0
  124. package/package.json +45 -36
  125. package/wiki/APPLETS.md +57 -0
  126. package/wiki/CHANGES.md +46 -0
  127. package/wiki/CONFIG.md +25 -0
  128. package/wiki/CONTRIBUTING.md +5 -0
  129. package/wiki/DEV-GUIDE.md +1 -0
  130. package/wiki/ECOSYSTEM.md +20 -0
  131. package/wiki/GETTING-STARTED.md +166 -0
  132. package/{docs/query-language.md → wiki/QUERY-LANGUAGE.md} +0 -0
  133. package/wiki/USER-GUIDE.md +1 -0
  134. package/extend/bajoCli/applet/model-clear.js +0 -11
  135. package/extend/bajoCli/applet/model-rebuild.js +0 -101
  136. package/extend/bajoCli/applet/record-create.js +0 -41
  137. package/extend/bajoCli/applet/record-find.js +0 -27
  138. package/extend/bajoCli/applet/record-get.js +0 -24
  139. package/extend/bajoCli/applet/record-remove.js +0 -24
  140. package/extend/bajoCli/applet/record-update.js +0 -47
  141. package/extend/bajoCli/applet/schema.js +0 -22
  142. package/extend/bajoCli/applet/stat-count.js +0 -24
  143. package/lib/build-bulk-action.js +0 -12
  144. package/lib/check-unique.js +0 -39
  145. package/lib/collect-feature.js +0 -25
  146. package/lib/collect-schemas.js +0 -83
  147. package/lib/exec-feature-hook.js +0 -13
  148. package/lib/exec-validation.js +0 -21
  149. package/lib/generic-prop-sanitizer.js +0 -31
  150. package/lib/handle-attachment-upload.js +0 -16
  151. package/lib/mem-db/conn-sanitizer.js +0 -8
  152. package/lib/mem-db/instantiate.js +0 -41
  153. package/lib/mem-db/method/model/clear.js +0 -6
  154. package/lib/mem-db/method/model/create.js +0 -5
  155. package/lib/mem-db/method/model/drop.js +0 -5
  156. package/lib/mem-db/method/model/exists.js +0 -5
  157. package/lib/mem-db/method/record/create.js +0 -12
  158. package/lib/mem-db/method/record/find.js +0 -20
  159. package/lib/mem-db/method/record/get.js +0 -9
  160. package/lib/mem-db/method/record/remove.js +0 -13
  161. package/lib/mem-db/method/record/update.js +0 -15
  162. package/lib/mem-db/method/stat/count.js +0 -11
  163. package/lib/mem-db/start.js +0 -25
  164. package/lib/merge-attachment-info.js +0 -16
  165. package/lib/multi-rel-rows.js +0 -42
  166. package/lib/resolve-method.js +0 -16
  167. package/lib/sanitize-schema.js +0 -197
  168. package/lib/single-rel-rows.js +0 -38
  169. package/method/attachment/copy-uploaded.js +0 -34
  170. package/method/attachment/create.js +0 -29
  171. package/method/attachment/find.js +0 -27
  172. package/method/attachment/get-path.js +0 -12
  173. package/method/attachment/get.js +0 -12
  174. package/method/attachment/pre-check.js +0 -9
  175. package/method/attachment/remove.js +0 -11
  176. package/method/attachment/update.js +0 -7
  177. package/method/bulk/create.js +0 -46
  178. package/method/model/clear.js +0 -22
  179. package/method/model/create.js +0 -19
  180. package/method/model/drop.js +0 -19
  181. package/method/model/exists.js +0 -24
  182. package/method/record/clear.js +0 -24
  183. package/method/record/count.js +0 -44
  184. package/method/record/create.js +0 -71
  185. package/method/record/find-all.js +0 -25
  186. package/method/record/find-one.js +0 -56
  187. package/method/record/find.js +0 -52
  188. package/method/record/get.js +0 -47
  189. package/method/record/remove.js +0 -41
  190. package/method/record/update.js +0 -63
  191. package/method/record/upsert.js +0 -35
  192. package/method/sanitize/body.js +0 -70
  193. package/method/sanitize/date.js +0 -14
  194. package/method/sanitize/id.js +0 -7
  195. package/method/stat/aggregate.js +0 -23
  196. package/method/stat/histogram.js +0 -26
  197. package/method/validate.js +0 -157
@@ -0,0 +1 @@
1
+ const hljs = (function () { 'use strict'; var e = { exports: {} }; function t (n) { return n instanceof Map ? n.clear = n.delete = n.set = function () { throw new Error('map is read-only') } : n instanceof Set && (n.add = n.clear = n.delete = function () { throw new Error('set is read-only') }), Object.freeze(n), Object.getOwnPropertyNames(n).forEach(function (e) { e = n[e]; typeof e !== 'object' || Object.isFrozen(e) || t(e) }), n }e.exports = t, e.exports.default = t; const z = e.exports; class D {constructor (e) { void 0 === e.data && (e.data = {}), this.data = e.data, this.isMatchIgnored = !1 }ignoreMatch () { this.isMatchIgnored = !0 }} function n (e) { return e.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/'/g, '&#x27;') } function l (e, ...n) { const t = Object.create(null); for (const a in e)t[a] = e[a]; return n.forEach(function (e) { for (const n in e)t[n] = e[n] }), t } const a = e => !!e.kind; class T {constructor (e, n) { this.buffer = '', this.classPrefix = n.classPrefix, e.walk(this) }addText (e) { this.buffer += n(e) }openNode (n) { if (a(n)) { let e = n.kind; e = n.sublanguage ? 'language-' + e : ((e, { prefix: n }) => { if (e.includes('.')) { const t = e.split('.'); return ['' + n + t.shift(), ...t.map((e, n) => '' + e + '_'.repeat(n + 1))].join(' ') } return '' + n + e })(e, { prefix: this.classPrefix }), this.span(e) } }closeNode (e) { a(e) && (this.buffer += '</span>') }value () { return this.buffer }span (e) { this.buffer += `<span class="${e}">` }} class i {constructor () { this.rootNode = { children: [] }, this.stack = [this.rootNode] } get top () { return this.stack[this.stack.length - 1] } get root () { return this.rootNode }add (e) { this.top.children.push(e) }openNode (e) { e = { kind: e, children: [] }; this.add(e), this.stack.push(e) }closeNode () { if (this.stack.length > 1) return this.stack.pop() }closeAllNodes () { for (;this.closeNode();); }toJSON () { return JSON.stringify(this.rootNode, null, 4) }walk (e) { return this.constructor._walk(e, this.rootNode) } static _walk (n, e) { return typeof e === 'string' ? n.addText(e) : e.children && (n.openNode(e), e.children.forEach(e => this._walk(n, e)), n.closeNode(e)), n } static _collapse (e) { typeof e !== 'string' && e.children && (e.children.every(e => typeof e === 'string') ? e.children = [e.children.join('')] : e.children.forEach(e => { i._collapse(e) })) }} class L extends i {constructor (e) { super(), this.options = e }addKeyword (e, n) { e !== '' && (this.openNode(n), this.addText(e), this.closeNode()) }addText (e) { e !== '' && this.add(e) }addSublanguage (e, n) { const t = e.root; t.kind = n, t.sublanguage = !0, this.add(t) }toHTML () { const e = new T(this, this.options); return e.value() }finalize () { return !0 }} function c (e) { return e ? typeof e === 'string' ? e : e.source : null } function k (e) { return O('(?=', e, ')') } function O (...e) { return e.map(e => c(e)).join('') } function d (...e) { let n; var t = typeof (n = (t = e)[t.length - 1]) === 'object' && n.constructor === Object ? (t.splice(t.length - 1, 1), n) : {}; return '(' + (t.capture ? '' : '?:') + e.map(e => c(e)).join('|') + ')' } function u (e) { return new RegExp(e.toString() + '|').exec('').length - 1 } const I = /\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./; function g (e, { joinWith: n }) { let r = 0; return e.map(e => { const n = r += 1; let t = c(e); let a = ''; for (;t.length > 0;) { const i = I.exec(t); if (!i) { a += t; break }a += t.substring(0, i.index), t = t.substring(i.index + i[0].length), i[0][0] === '\\' && i[1] ? a += '\\' + String(Number(i[1]) + n) : (a += i[0], i[0] === '(' && r++) } return a }).map(e => `(${e})`).join(n) } function r (e, n, t = {}) { const a = l({ scope: 'comment', begin: e, end: n, contains: [] }, t); return a.contains.push({ scope: 'doctag', begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)', end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/, excludeBegin: !0, relevance: 0 }), e = d('I', 'a', 'is', 'so', 'us', 'to', 'at', 'if', 'in', 'it', 'on', /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, /[A-Za-z]+[-][a-z]+/, /[A-Za-z][a-z]{2,}/), a.contains.push({ begin: O(/[ ]+/, '(', e, /[.]?[:]?([.][ ]|[ ])/, '){3}') }), a } var e = '[a-zA-Z]\\w*'; const s = '[a-zA-Z_]\\w*'; let o = '\\b\\d+(\\.\\d+)?'; const b = '(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)'; const h = '\\b(0b[01]+)'; const p = { begin: '\\\\[\\s\\S]', relevance: 0 }; let m = { scope: 'string', begin: "'", end: "'", illegal: '\\n', contains: [p] }; let f = { scope: 'string', begin: '"', end: '"', illegal: '\\n', contains: [p] }; let E = r('//', '$'); let v = r('/\\*', '\\*/'); let w = r('#', '$'); const y = Object.freeze({ __proto__: null, MATCH_NOTHING_RE: /\b\B/, IDENT_RE: e, UNDERSCORE_IDENT_RE: s, NUMBER_RE: o, C_NUMBER_RE: b, BINARY_NUMBER_RE: h, RE_STARTERS_RE: '!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~', SHEBANG: (e = {}) => { const n = /^#![ ]*\//; return e.binary && (e.begin = O(n, /.*\b/, e.binary, /\b.*/)), l({ scope: 'meta', begin: n, end: /$/, relevance: 0, 'on:begin': (e, n) => { e.index !== 0 && n.ignoreMatch() } }, e) }, BACKSLASH_ESCAPE: p, APOS_STRING_MODE: m, QUOTE_STRING_MODE: f, PHRASAL_WORDS_MODE: { begin: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ }, COMMENT: r, C_LINE_COMMENT_MODE: E, C_BLOCK_COMMENT_MODE: v, HASH_COMMENT_MODE: w, NUMBER_MODE: { scope: 'number', begin: o, relevance: 0 }, C_NUMBER_MODE: { scope: 'number', begin: b, relevance: 0 }, BINARY_NUMBER_MODE: { scope: 'number', begin: h, relevance: 0 }, REGEXP_MODE: { begin: /(?=\/[^/\n]*\/)/, contains: [{ scope: 'regexp', begin: /\//, end: /\/[gimuy]*/, illegal: /\n/, contains: [p, { begin: /\[/, end: /\]/, relevance: 0, contains: [p] }] }] }, TITLE_MODE: { scope: 'title', begin: e, relevance: 0 }, UNDERSCORE_TITLE_MODE: { scope: 'title', begin: s, relevance: 0 }, METHOD_GUARD: { begin: '\\.\\s*' + s, relevance: 0 }, END_SAME_AS_BEGIN: function (e) { return Object.assign(e, { 'on:begin': (e, n) => { n.data._beginMatch = e[1] }, 'on:end': (e, n) => { n.data._beginMatch !== e[1] && n.ignoreMatch() } }) } }); function $ (e, n) { e.input[e.index - 1] === '.' && n.ignoreMatch() } function P (e, n) { void 0 !== e.className && (e.scope = e.className, delete e.className) } function U (e, n) { n && e.beginKeywords && (e.begin = '\\b(' + e.beginKeywords.split(' ').join('|') + ')(?!\\.)(?=\\b|\\s)', e.__beforeBegin = $, e.keywords = e.keywords || e.beginKeywords, delete e.beginKeywords, void 0 === e.relevance && (e.relevance = 0)) } function H (e, n) { Array.isArray(e.illegal) && (e.illegal = d(...e.illegal)) } function Z (e, n) { if (e.match) { if (e.begin || e.end) throw new Error('begin & end are not supported with match'); e.begin = e.match, delete e.match } } function G (e, n) { void 0 === e.relevance && (e.relevance = 1) } const K = (n, e) => { if (n.beforeMatch) { if (n.starts) throw new Error('beforeMatch cannot be used with starts'); const t = Object.assign({}, n); Object.keys(n).forEach(e => { delete n[e] }), n.keywords = t.keywords, n.begin = O(t.beforeMatch, k(t.begin)), n.starts = { relevance: 0, contains: [Object.assign(t, { endsParent: !0 })] }, n.relevance = 0, delete t.beforeMatch } }; const X = ['of', 'and', 'for', 'in', 'not', 'or', 'if', 'then', 'parent', 'list', 'value']; const W = 'keyword'; function _ (n, t, e = W) { const a = Object.create(null); return typeof n === 'string' ? i(e, n.split(' ')) : Array.isArray(n) ? i(e, n) : Object.keys(n).forEach(function (e) { Object.assign(a, _(n[e], t, e)) }), a; function i (n, e) { (e = t ? e.map(e => e.toLowerCase()) : e).forEach(function (e) { e = e.split('|'); a[e[0]] = [n, (function (e, n) { if (n) return Number(n); return (function (e) { return X.includes(e.toLowerCase()) }(e)) ? 0 : 1 }(e[0], e[1]))] }) } } const N = {}; const j = e => { console.error(e) }; const x = (e, ...n) => { console.log('WARN: ' + e, ...n) }; const A = (e, n) => { N[e + '/' + n] || (console.log(`Deprecated as of ${e}. ` + n), N[e + '/' + n] = !0) }; const S = new Error(); function M (e, n, { key: t }) { let a = 0; const i = e[t]; const r = {}; const s = {}; for (let e = 1; e <= n.length; e++)s[e + a] = i[e], r[e + a] = !0, a += u(n[e - 1]); e[t] = s, e[t]._emit = r, e[t]._multi = !0 } function q (e) { (n = e).scope && typeof n.scope === 'object' && n.scope !== null && (n.beginScope = n.scope, delete n.scope), typeof e.beginScope === 'string' && (e.beginScope = { _wrap: e.beginScope }), typeof e.endScope === 'string' && (e.endScope = { _wrap: e.endScope }); var n = e; if (Array.isArray(n.begin)) { if (n.skip || n.excludeBegin || n.returnBegin) throw j('skip, excludeBegin, returnBegin not compatible with beginScope: {}'), S; if (typeof n.beginScope !== 'object' || n.beginScope === null) throw j('beginScope must be object'), S; M(n, n.begin, { key: 'beginScope' }), n.begin = g(n.begin, { joinWith: '' }) }n = e; if (Array.isArray(n.end)) { if (n.skip || n.excludeEnd || n.returnEnd) throw j('skip, excludeEnd, returnEnd not compatible with endScope: {}'), S; if (typeof n.endScope !== 'object' || n.endScope === null) throw j('endScope must be object'), S; M(n, n.end, { key: 'endScope' }), n.end = g(n.end, { joinWith: '' }) } } function Q (r) { function s (e, n) { return new RegExp(c(e), 'm' + (r.case_insensitive ? 'i' : '') + (n ? 'g' : '')) } class n {constructor () { this.matchIndexes = {}, this.regexes = [], this.matchAt = 1, this.position = 0 }addRule (e, n) { n.position = this.position++, this.matchIndexes[this.matchAt] = n, this.regexes.push([n, e]), this.matchAt += u(e) + 1 }compile () { this.regexes.length === 0 && (this.exec = () => null); const e = this.regexes.map(e => e[1]); this.matcherRe = s(g(e, { joinWith: '|' }), !0), this.lastIndex = 0 }exec (e) { this.matcherRe.lastIndex = this.lastIndex; const n = this.matcherRe.exec(e); if (!n) return null; var e = n.findIndex((e, n) => n > 0 && void 0 !== e); const t = this.matchIndexes[e]; return n.splice(0, e), Object.assign(n, t) }} class o {constructor () { this.rules = [], this.multiRegexes = [], this.count = 0, this.lastIndex = 0, this.regexIndex = 0 }getMatcher (e) { if (this.multiRegexes[e]) return this.multiRegexes[e]; const t = new n(); return this.rules.slice(e).forEach(([e, n]) => t.addRule(e, n)), t.compile(), this.multiRegexes[e] = t }resumingScanAtSamePosition () { return this.regexIndex !== 0 }considerAll () { this.regexIndex = 0 }addRule (e, n) { this.rules.push([e, n]), n.type === 'begin' && this.count++ }exec (e) { const n = this.getMatcher(this.regexIndex); n.lastIndex = this.lastIndex; let t = n.exec(e); if (this.resumingScanAtSamePosition() && (!t || t.index !== this.lastIndex)) { const a = this.getMatcher(0); a.lastIndex = this.lastIndex + 1, t = a.exec(e) } return t && (this.regexIndex += t.position + 1, this.regexIndex === this.count && this.considerAll()), t }} if (r.compilerExtensions || (r.compilerExtensions = []), r.contains && r.contains.includes('self')) throw new Error('ERR: contains `self` is not supported at the top-level of a language. See documentation.'); return r.classNameAliases = l(r.classNameAliases || {}), (function n (t, a) { const i = t; if (!t.isCompiled) { [P, Z, q, K].forEach(e => e(t, a)), r.compilerExtensions.forEach(e => e(t, a)), t.__beforeBegin = null, [U, H, G].forEach(e => e(t, a)), t.isCompiled = !0; let e = null; typeof t.keywords === 'object' && t.keywords.$pattern && (t.keywords = Object.assign({}, t.keywords), e = t.keywords.$pattern, delete t.keywords.$pattern), e = e || /\w+/, t.keywords && (t.keywords = _(t.keywords, r.case_insensitive)), i.keywordPatternRe = s(e, !0), a && (t.begin || (t.begin = /\B|\b/), i.beginRe = s(t.begin), t.end || t.endsWithParent || (t.end = /\B|\b/), t.end && (i.endRe = s(t.end)), i.terminatorEnd = c(t.end) || '', t.endsWithParent && a.terminatorEnd && (i.terminatorEnd += (t.end ? '|' : '') + a.terminatorEnd)), t.illegal && (i.illegalRe = s(t.illegal)), t.contains || (t.contains = []), t.contains = [].concat(...t.contains.map(function (e) { const n = e === 'self' ? t : e; return n.variants && !n.cachedVariants && (n.cachedVariants = n.variants.map(function (e) { return l(n, { variants: null }, e) })), n.cachedVariants || ((function e (n) { return !!n && (n.endsWithParent || e(n.starts)) }(n)) ? l(n, { starts: n.starts ? l(n.starts) : null }) : Object.isFrozen(n) ? l(n) : n) })), t.contains.forEach(function (e) { n(e, i) }), t.starts && n(t.starts, a), i.matcher = (function (e) { const n = new o(); return e.contains.forEach(e => n.addRule(e.begin, { rule: e, type: 'begin' })), e.terminatorEnd && n.addRule(e.terminatorEnd, { type: 'end' }), e.illegal && n.addRule(e.illegal, { type: 'illegal' }), n }(i)) } return i }(r)) } const C = n; const F = l; const J = Symbol('nomatch'); m = (function (a) { const O = Object.create(null); const r = Object.create(null); const i = []; let S = !0; const M = "Could not find the language '{}', did you forget to load/include a language module?"; const s = { disableAutodetect: !0, name: 'Plain text', contains: [] }; let R = { ignoreUnescapedHTML: !1, noHighlightRe: /^(no-?highlight)$/i, languageDetectRe: /\blang(?:uage)?-([\w-]+)\b/i, classPrefix: 'hljs-', cssSelector: 'pre code', languages: null, __emitter: L }; function o (e) { return R.noHighlightRe.test(e) } function l (e, n, t, a) { let i = ''; let r = ''; typeof n === 'object' ? (i = e, t = n.ignoreIllegals, r = n.language, a = void 0) : (A('10.7.0', 'highlight(lang, code, ...args) has been deprecated.'), A('10.7.0', 'Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277'), r = e, i = n), void 0 === t && (t = !0); e = { code: i, language: r }; u('before:highlight', e); const s = e.result || B(e.language, e.code, t, a); return s.code = e.code, u('after:highlight', s), s } function B (r, s, o, e) { const l = Object.create(null); function c () { if (m.keywords) { let e = 0; let n = (m.keywordPatternRe.lastIndex = 0, m.keywordPatternRe.exec(v)); let t = ''; for (;n;) { t += v.substring(e, n.index); const a = p.case_insensitive ? n[0].toLowerCase() : n[0]; let i = m.keywords[a]; if (i) { const [r, s] = i; E.addText(t), t = '', l[a] = (l[a] || 0) + 1, l[a] <= 7 && (w += s), r.startsWith('_') ? t += n[0] : (i = p.classNameAliases[r] || r, E.addKeyword(n[0], i)) } else t += n[0]; e = m.keywordPatternRe.lastIndex, n = m.keywordPatternRe.exec(v) }t += v.substr(e), E.addText(t) } else E.addText(v) } function d () { (m.subLanguage != null ? function () { if (v !== '') { let e = null; if (typeof m.subLanguage === 'string') { if (!O[m.subLanguage]) return E.addText(v); e = B(m.subLanguage, v, !0, f[m.subLanguage]), f[m.subLanguage] = e._top } else e = T(v, m.subLanguage.length ? m.subLanguage : null); m.relevance > 0 && (w += e.relevance), E.addSublanguage(e._emitter, e.language) } } : c)(), v = '' } function i (e, n) { let t = 1; for (;void 0 !== n[t];) { var a, i; e._emit[t] ? (a = p.classNameAliases[e[t]] || e[t], i = n[t], a ? E.addKeyword(i, a) : (v = i, c(), v = ''), t++) : t++ } } function u (e, n) { e.scope && typeof e.scope === 'string' && E.openNode(p.classNameAliases[e.scope] || e.scope), e.beginScope && (e.beginScope._wrap ? (E.addKeyword(v, p.classNameAliases[e.beginScope._wrap] || e.beginScope._wrap), v = '') : e.beginScope._multi && (i(e.beginScope, n), v = '')), m = Object.create(e, { parent: { value: m } }) } function g (e) { let n; const t = e[0]; const a = e.rule; const i = new D(a); for (const r of [a.__beforeBegin, a['on:begin']]) if (r && (r(e, i), i.isMatchIgnored)) return n = t, m.matcher.regexIndex === 0 ? (v += n[0], 1) : (N = !0, 0); return a.skip ? v += t : (a.excludeBegin && (v += t), d(), a.returnBegin || a.excludeBegin || (v = t)), u(a, e), a.returnBegin ? 0 : t.length } function b (e) { const n = e[0]; let t = s.substr(e.index); const a = (function e (n, t, a) { r = n.endRe, s = a; let i = (r = r && r.exec(s)) && r.index === 0; let r, s; if (i && (n['on:end'] && (s = new D(n), n['on:end'](t, s), s.isMatchIgnored && (i = !1)), i)) { for (;n.endsParent && n.parent;)n = n.parent; return n } if (n.endsWithParent) return e(n.parent, t, a) }(m, e, t)); if (!a) return J; t = m; for (m.endScope && m.endScope._wrap ? (d(), E.addKeyword(n, m.endScope._wrap)) : m.endScope && m.endScope._multi ? (d(), i(m.endScope, e)) : t.skip ? v += n : (t.returnEnd || t.excludeEnd || (v += n), d(), t.excludeEnd && (v = n)); m.scope && !m.isMultiClass && E.closeNode(), m.skip || m.subLanguage || (w += m.relevance), (m = m.parent) !== a.parent;);return a.starts && u(a.starts, e), t.returnEnd ? 0 : n.length } let h = {}; function n (e, n) { const t = n && n[0]; if (v += e, t == null) return d(), 0; if (h.type === 'begin' && n.type === 'end' && h.index === n.index && t === '') { if (v += s.slice(n.index, n.index + 1), S) return 1; { const a = new Error(`0 width match regex (${r})`); throw a.languageName = r, a.badRule = h.rule, a } } if ((h = n).type === 'begin') return g(n); if (n.type === 'illegal' && !o) { const i = new Error('Illegal lexeme "' + t + '" for mode "' + (m.scope || '<unnamed>') + '"'); throw i.mode = m, i } if (n.type === 'end') { e = b(n); if (e !== J) return e } if (n.type === 'illegal' && t === '') return 1; if (_ > 1e5 && _ > 3 * n.index) throw new Error('potential infinite loop, way more iterations than matches'); return v += t, t.length } const p = I(r); if (!p) throw j(M.replace('{}', r)), new Error('Unknown language: "' + r + '"'); const t = Q(p); let a = ''; let m = e || t; const f = {}; const E = new R.__emitter(R); { const k = []; for (let e = m; e !== p; e = e.parent)e.scope && k.unshift(e.scope); k.forEach(e => E.openNode(e)) } let v = ''; let w = 0; let y = 0; let _ = 0; let N = !1; try { for (m.matcher.considerAll(); ;) { _++, N ? N = !1 : m.matcher.considerAll(), m.matcher.lastIndex = y; const x = m.matcher.exec(s); if (!x) break; const A = n(s.substring(y, x.index), x); y = x.index + A } return n(s.substr(y)), E.closeAllNodes(), E.finalize(), a = E.toHTML(), { language: r, value: a, relevance: w, illegal: !1, _emitter: E, _top: m } } catch (e) { if (e.message && e.message.includes('Illegal')) return { language: r, value: C(s), illegal: !0, relevance: 0, _illegalBy: { message: e.message, index: y, context: s.slice(y - 100, y + 100), mode: e.mode, resultSoFar: a }, _emitter: E }; if (S) return { language: r, value: C(s), illegal: !1, relevance: 0, errorRaised: e, _emitter: E, _top: m }; throw e } } function T (n, e) { e = e || R.languages || Object.keys(O); var t = (function (e) { const n = { value: C(e), illegal: !1, relevance: 0, _top: s, _emitter: new R.__emitter(R) }; return n._emitter.addText(e), n }(n)); const a = e.filter(I).filter(d).map(e => B(e, n, !1)); a.unshift(t); var [e, t] = a.sort((e, n) => { if (e.relevance !== n.relevance) return n.relevance - e.relevance; if (e.language && n.language) { if (I(e.language).supersetOf === n.language) return 1; if (I(n.language).supersetOf === e.language) return -1 } return 0 }); const i = e; return i.secondBest = t, i } function n (e) { let n; let t; let a; let i = (function (e) { let n = e.className + ' '; n += e.parentNode ? e.parentNode.className : ''; let t; const a = R.languageDetectRe.exec(n); return a ? ((t = I(a[1])) || (x(M.replace('{}', a[1])), x('Falling back to no-highlight mode for this block.', e)), t ? a[1] : 'no-highlight') : n.split(/\s+/).find(e => o(e) || I(e)) }(e)); o(i) || (u('before:highlightElement', { el: e, language: i }), !R.ignoreUnescapedHTML && e.children.length > 0 && (console.warn('One of your code blocks includes unescaped HTML. This is a potentially serious security risk.'), console.warn('https://github.com/highlightjs/highlight.js/issues/2886'), console.warn(e)), t = e.textContent, u('after:highlightElement', { el: e, result: n = i ? l(t, { language: i, ignoreIllegals: !0 }) : T(t), text: t }), e.innerHTML = n.value, t = e, i = i, a = n.language, i = i && r[i] || a, t.classList.add('hljs'), t.classList.add('language-' + i), e.result = { language: n.language, re: n.relevance, relevance: n.relevance }, n.secondBest && (e.secondBest = { language: n.secondBest.language, relevance: n.secondBest.relevance })) } let t = !1; function e () { if (document.readyState === 'loading')t = !0; else { const e = document.querySelectorAll(R.cssSelector); e.forEach(n) } } function I (e) { return e = (e || '').toLowerCase(), O[e] || O[r[e]] } function c (e, { languageName: n }) { (e = typeof e === 'string' ? [e] : e).forEach(e => { r[e.toLowerCase()] = n }) } function d (e) { e = I(e); return e && !e.disableAutodetect } function u (e, n) { const t = e; i.forEach(function (e) { e[t] && e[t](n) }) } typeof window !== 'undefined' && window.addEventListener && window.addEventListener('DOMContentLoaded', function () { t && e() }, !1), Object.assign(a, { highlight: l, highlightAuto: T, highlightAll: e, highlightElement: n, highlightBlock: function (e) { return A('10.7.0', 'highlightBlock will be removed entirely in v12.0'), A('10.7.0', 'Please use highlightElement now.'), n(e) }, configure: function (e) { R = F(R, e) }, initHighlighting: () => { e(), A('10.6.0', 'initHighlighting() deprecated. Use highlightAll() now.') }, initHighlightingOnLoad: function () { e(), A('10.6.0', 'initHighlightingOnLoad() deprecated. Use highlightAll() now.') }, registerLanguage: function (n, e) { let t = null; try { t = e(a) } catch (e) { if (j("Language definition for '{}' could not be registered.".replace('{}', n)), !S) throw e; j(e), t = s }t.name || (t.name = n), (O[n] = t).rawDefinition = e.bind(null, a), t.aliases && c(t.aliases, { languageName: n }) }, unregisterLanguage: function (e) { delete O[e]; for (const n of Object.keys(r))r[n] === e && delete r[n] }, listLanguages: function () { return Object.keys(O) }, getLanguage: I, registerAliases: c, autoDetection: d, inherit: F, addPlugin: function (e) { let n; (n = e)['before:highlightBlock'] && !n['before:highlightElement'] && (n['before:highlightElement'] = e => { n['before:highlightBlock'](Object.assign({ block: e.el }, e)) }), n['after:highlightBlock'] && !n['after:highlightElement'] && (n['after:highlightElement'] = e => { n['after:highlightBlock'](Object.assign({ block: e.el }, e)) }), i.push(e) } }), a.debugMode = function () { S = !1 }, a.safeMode = function () { S = !0 }, a.versionString = '11.0.0-beta1'; for (const g in y) typeof y[g] === 'object' && z(y[g]); return Object.assign(a, y), a }({})); const V = ['a', 'abbr', 'address', 'article', 'aside', 'audio', 'b', 'blockquote', 'body', 'button', 'canvas', 'caption', 'cite', 'code', 'dd', 'del', 'details', 'dfn', 'div', 'dl', 'dt', 'em', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'mark', 'menu', 'nav', 'object', 'ol', 'p', 'q', 'quote', 'samp', 'section', 'span', 'strong', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'ul', 'var', 'video']; const Y = ['any-hover', 'any-pointer', 'aspect-ratio', 'color', 'color-gamut', 'color-index', 'device-aspect-ratio', 'device-height', 'device-width', 'display-mode', 'forced-colors', 'grid', 'height', 'hover', 'inverted-colors', 'monochrome', 'orientation', 'overflow-block', 'overflow-inline', 'pointer', 'prefers-color-scheme', 'prefers-contrast', 'prefers-reduced-motion', 'prefers-reduced-transparency', 'resolution', 'scan', 'scripting', 'update', 'width', 'min-width', 'max-width', 'min-height', 'max-height']; const ee = ['active', 'any-link', 'blank', 'checked', 'current', 'default', 'defined', 'dir', 'disabled', 'drop', 'empty', 'enabled', 'first', 'first-child', 'first-of-type', 'fullscreen', 'future', 'focus', 'focus-visible', 'focus-within', 'has', 'host', 'host-context', 'hover', 'indeterminate', 'in-range', 'invalid', 'is', 'lang', 'last-child', 'last-of-type', 'left', 'link', 'local-link', 'not', 'nth-child', 'nth-col', 'nth-last-child', 'nth-last-col', 'nth-last-of-type', 'nth-of-type', 'only-child', 'only-of-type', 'optional', 'out-of-range', 'past', 'placeholder-shown', 'read-only', 'read-write', 'required', 'right', 'root', 'scope', 'target', 'target-within', 'user-invalid', 'valid', 'visited', 'where']; const ne = ['after', 'backdrop', 'before', 'cue', 'cue-region', 'first-letter', 'first-line', 'grammar-error', 'marker', 'part', 'placeholder', 'selection', 'slotted', 'spelling-error']; const te = ['align-content', 'align-items', 'align-self', 'animation', 'animation-delay', 'animation-direction', 'animation-duration', 'animation-fill-mode', 'animation-iteration-count', 'animation-name', 'animation-play-state', 'animation-timing-function', 'auto', 'backface-visibility', 'background', 'background-attachment', 'background-clip', 'background-color', 'background-image', 'background-origin', 'background-position', 'background-repeat', 'background-size', 'border', 'border-bottom', 'border-bottom-color', 'border-bottom-left-radius', 'border-bottom-right-radius', 'border-bottom-style', 'border-bottom-width', 'border-collapse', 'border-color', 'border-image', 'border-image-outset', 'border-image-repeat', 'border-image-slice', 'border-image-source', 'border-image-width', 'border-left', 'border-left-color', 'border-left-style', 'border-left-width', 'border-radius', 'border-right', 'border-right-color', 'border-right-style', 'border-right-width', 'border-spacing', 'border-style', 'border-top', 'border-top-color', 'border-top-left-radius', 'border-top-right-radius', 'border-top-style', 'border-top-width', 'border-width', 'bottom', 'box-decoration-break', 'box-shadow', 'box-sizing', 'break-after', 'break-before', 'break-inside', 'caption-side', 'clear', 'clip', 'clip-path', 'color', 'column-count', 'column-fill', 'column-gap', 'column-rule', 'column-rule-color', 'column-rule-style', 'column-rule-width', 'column-span', 'column-width', 'columns', 'content', 'counter-increment', 'counter-reset', 'cursor', 'direction', 'display', 'empty-cells', 'filter', 'flex', 'flex-basis', 'flex-direction', 'flex-flow', 'flex-grow', 'flex-shrink', 'flex-wrap', 'float', 'font', 'font-display', 'font-family', 'font-feature-settings', 'font-kerning', 'font-language-override', 'font-size', 'font-size-adjust', 'font-smoothing', 'font-stretch', 'font-style', 'font-variant', 'font-variant-ligatures', 'font-variation-settings', 'font-weight', 'height', 'hyphens', 'icon', 'image-orientation', 'image-rendering', 'image-resolution', 'ime-mode', 'inherit', 'initial', 'justify-content', 'left', 'letter-spacing', 'line-height', 'list-style', 'list-style-image', 'list-style-position', 'list-style-type', 'margin', 'margin-bottom', 'margin-left', 'margin-right', 'margin-top', 'marks', 'mask', 'max-height', 'max-width', 'min-height', 'min-width', 'nav-down', 'nav-index', 'nav-left', 'nav-right', 'nav-up', 'none', 'normal', 'object-fit', 'object-position', 'opacity', 'order', 'orphans', 'outline', 'outline-color', 'outline-offset', 'outline-style', 'outline-width', 'overflow', 'overflow-wrap', 'overflow-x', 'overflow-y', 'padding', 'padding-bottom', 'padding-left', 'padding-right', 'padding-top', 'page-break-after', 'page-break-before', 'page-break-inside', 'perspective', 'perspective-origin', 'pointer-events', 'position', 'quotes', 'resize', 'right', 'src', 'tab-size', 'table-layout', 'text-align', 'text-align-last', 'text-decoration', 'text-decoration-color', 'text-decoration-line', 'text-decoration-style', 'text-indent', 'text-overflow', 'text-rendering', 'text-shadow', 'text-transform', 'text-underline-position', 'top', 'transform', 'transform-origin', 'transform-style', 'transition', 'transition-delay', 'transition-duration', 'transition-property', 'transition-timing-function', 'unicode-bidi', 'vertical-align', 'visibility', 'white-space', 'widows', 'width', 'word-break', 'word-spacing', 'word-wrap', 'z-index'].reverse(); ee.concat(ne); const R = '[A-Za-z$_][0-9A-Za-z$_]*'; const ae = ['as', 'in', 'of', 'if', 'for', 'while', 'finally', 'var', 'new', 'function', 'do', 'return', 'void', 'else', 'break', 'catch', 'instanceof', 'with', 'throw', 'case', 'default', 'try', 'switch', 'continue', 'typeof', 'delete', 'let', 'yield', 'const', 'class', 'debugger', 'async', 'await', 'static', 'import', 'from', 'export', 'extends']; const ie = ['true', 'false', 'null', 'undefined', 'NaN', 'Infinity']; const re = ['Intl', 'DataView', 'Number', 'Math', 'Date', 'String', 'RegExp', 'Object', 'Function', 'Boolean', 'Error', 'Symbol', 'Set', 'Map', 'WeakSet', 'WeakMap', 'Proxy', 'Reflect', 'JSON', 'Promise', 'Float64Array', 'Int16Array', 'Int32Array', 'Int8Array', 'Uint16Array', 'Uint32Array', 'Float32Array', 'Array', 'Uint8Array', 'Uint8ClampedArray', 'ArrayBuffer', 'BigInt64Array', 'BigUint64Array', 'BigInt']; const se = ['EvalError', 'InternalError', 'RangeError', 'ReferenceError', 'SyntaxError', 'TypeError', 'URIError']; const oe = ['setInterval', 'setTimeout', 'clearInterval', 'clearTimeout', 'require', 'exports', 'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt', 'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent', 'escape', 'unescape']; const le = ['arguments', 'this', 'super', 'console', 'window', 'document', 'localStorage', 'module', 'global']; const ce = [].concat(oe, re, se); function de (e) { const n = R; const t = '<>'; const a = '</>'; const i = /<[A-Za-z0-9\\._:-]+/; const r = /\/[A-Za-z0-9\\._:-]+>|\/>/; const s = (e, n) => { let t = e[0].length + e.index; let a = e.input[t]; a === '<' ? n.ignoreMatch() : a === '>' && ([a, e] = [e, { after: t }.after], t = '</' + a[0].slice(1), a.input.indexOf(t, e) === -1 && n.ignoreMatch()) }; const o = { $pattern: R, keyword: ae, literal: ie, built_in: ce, 'variable.language': le }; var l = '[0-9](_?[0-9])*'; var c = `\\.(${l})`; var d = '0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*'; var l = { className: 'number', variants: [{ begin: `(\\b(${d})((${c})|\\.)?|(${c}))` + `[eE][+-]?(${l})\\b` }, { begin: `\\b(${d})\\b((${c})\\b|\\.)?|(${c})\\b` }, { begin: '\\b(0|[1-9](_?[0-9])*)n\\b' }, { begin: '\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b' }, { begin: '\\b0[bB][0-1](_?[0-1])*n?\\b' }, { begin: '\\b0[oO][0-7](_?[0-7])*n?\\b' }, { begin: '\\b0[0-7]+n?\\b' }], relevance: 0 }; const u = { className: 'subst', begin: '\\$\\{', end: '\\}', keywords: o, contains: [] }; var d = { begin: 'html`', end: '', starts: { end: '`', returnEnd: !1, contains: [e.BACKSLASH_ESCAPE, u], subLanguage: 'xml' } }; var c = { begin: 'css`', end: '', starts: { end: '`', returnEnd: !1, contains: [e.BACKSLASH_ESCAPE, u], subLanguage: 'css' } }; const g = { className: 'string', begin: '`', end: '`', contains: [e.BACKSLASH_ESCAPE, u] }; const b = { className: 'comment', variants: [e.COMMENT(/\/\*\*(?!\/)/, '\\*/', { relevance: 0, contains: [{ begin: '(?=@[A-Za-z]+)', relevance: 0, contains: [{ className: 'doctag', begin: '@[A-Za-z]+' }, { className: 'type', begin: '\\{', end: '\\}', excludeEnd: !0, excludeBegin: !0, relevance: 0 }, { className: 'variable', begin: n + '(?=\\s*(-)|$)', endsParent: !0, relevance: 0 }, { begin: /(?=[^\n])\s/, relevance: 0 }] }] }), e.C_BLOCK_COMMENT_MODE, e.C_LINE_COMMENT_MODE] }; const h = [e.APOS_STRING_MODE, e.QUOTE_STRING_MODE, d, c, g, l, e.REGEXP_MODE]; const p = (u.contains = h.concat({ begin: /\{/, end: /\}/, keywords: o, contains: ['self'].concat(h) }), [].concat(b, u.contains)); const m = p.concat([{ begin: /\(/, end: /\)/, keywords: o, contains: ['self'].concat(p) }]); const f = { className: 'params', begin: /\(/, end: /\)/, excludeBegin: !0, excludeEnd: !0, keywords: o, contains: m }; const E = { variants: [{ match: [/class/, /\s+/, n], scope: { 1: 'keyword', 3: 'title.class' } }, { match: [/extends/, /\s+/, O(n, '(', O(/\./, n), ')*')], scope: { 1: 'keyword', 3: 'title.class.inherited' } }] }; const v = { relevance: 0, match: /\b[A-Z][a-z]+([A-Z][a-z]+)*/, className: 'title.class', keywords: { _: [...re, ...se] } }; const w = { variants: [{ match: [/function/, /\s+/, n, /(?=\s*\()/] }, { match: [/function/, /\s*(?=\()/] }], className: { 1: 'keyword', 3: 'title.function' }, label: 'func.def', contains: [f], illegal: /%/ }; const y = { match: O(/\b/, O('(?!', [...oe, 'super'].join('|'), ')'), n, k(/\(/)), className: 'title.function', relevance: 0 }; const _ = { begin: O(/\./, k(O(n, /(?![0-9A-Za-z$_(])/))), end: n, excludeBegin: !0, keywords: 'prototype', className: 'property', relevance: 0 }; const N = { match: [/get|set/, /\s+/, n, /(?=\()/], className: { 1: 'keyword', 3: 'title.function' }, contains: [{ begin: /\(\)/ }, f] }; const x = '(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|' + e.UNDERSCORE_IDENT_RE + ')\\s*=>'; const A = { match: [/const|var|let/, /\s+/, n, /\s*/, /=\s*/, k(x)], className: { 1: 'keyword', 3: 'title.function' }, contains: [f] }; return { name: 'Javascript', aliases: ['js', 'jsx', 'mjs', 'cjs'], keywords: o, exports: { PARAMS_CONTAINS: m }, illegal: /#(?![$_A-z])/, contains: [e.SHEBANG({ label: 'shebang', binary: 'node', relevance: 5 }), { label: 'use_strict', className: 'meta', relevance: 10, begin: /^\s*['"]use (strict|asm)['"]/ }, e.APOS_STRING_MODE, e.QUOTE_STRING_MODE, d, c, g, b, l, v, { className: 'attr', begin: n + k(':'), relevance: 0 }, A, { begin: '(' + e.RE_STARTERS_RE + '|\\b(case|return|throw)\\b)\\s*', keywords: 'return throw case', relevance: 0, contains: [b, e.REGEXP_MODE, { className: 'function', begin: x, returnBegin: !0, end: '\\s*=>', contains: [{ className: 'params', variants: [{ begin: e.UNDERSCORE_IDENT_RE, relevance: 0 }, { className: null, begin: /\(\s*\)/, skip: !0 }, { begin: /\(/, end: /\)/, excludeBegin: !0, excludeEnd: !0, keywords: o, contains: m }] }] }, { begin: /,/, relevance: 0 }, { match: /\s+/, relevance: 0 }, { variants: [{ begin: t, end: a }, { begin: i, 'on:begin': s, end: r }], subLanguage: 'xml', contains: [{ begin: i, end: r, skip: !0, contains: ['self'] }] }] }, w, { beginKeywords: 'while if switch catch for' }, { begin: '\\b(?!function)' + e.UNDERSCORE_IDENT_RE + '\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{', returnBegin: !0, label: 'func.def', contains: [f, e.inherit(e.TITLE_MODE, { begin: n, className: 'title.function' })] }, { match: /\.\.\./, relevance: 0 }, _, { match: '\\$' + n, relevance: 0 }, { match: [/\bconstructor(?=\s*\()/], className: { 1: 'title.function' }, contains: [f] }, y, { relevance: 0, match: /\b[A-Z][A-Z_]+\b/, className: 'variable.constant' }, E, N, { match: /\$[(.]/ }] } } function ue (e) { const n = { beginKeywords: ['true', 'false', 'null'].join(' ') }; return { name: 'JSON', contains: [{ className: 'attr', begin: /"(\\.|[^\\"\r\n])*"(?=\s*:)/, relevance: 1.01 }, { match: /[{}[\],:]/, className: 'punctuation', relevance: 0 }, e.QUOTE_STRING_MODE, n, e.C_NUMBER_MODE, e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE], illegal: '\\S' } } function ge (e) { const n = { IMPORTANT: { scope: 'meta', begin: '!important' }, HEXCOLOR: { scope: 'number', begin: '#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})' }, ATTRIBUTE_SELECTOR_MODE: { scope: 'selector-attr', begin: /\[/, end: /\]/, illegal: '$', contains: [e.APOS_STRING_MODE, e.QUOTE_STRING_MODE] }, CSS_NUMBER_MODE: { scope: 'number', begin: e.NUMBER_RE + '(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?', relevance: 0 } }; const t = ne; const a = ee; const i = '@[a-z-]+'; const r = { className: 'variable', begin: '(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b' }; return { name: 'SCSS', case_insensitive: !0, illegal: "[=/|']", contains: [e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE, { className: 'selector-id', begin: '#[A-Za-z0-9_-]+', relevance: 0 }, { className: 'selector-class', begin: '\\.[A-Za-z0-9_-]+', relevance: 0 }, n.ATTRIBUTE_SELECTOR_MODE, { className: 'selector-tag', begin: '\\b(' + V.join('|') + ')\\b', relevance: 0 }, { className: 'selector-pseudo', begin: ':(' + a.join('|') + ')' }, { className: 'selector-pseudo', begin: '::(' + t.join('|') + ')' }, r, { begin: /\(/, end: /\)/, contains: [n.CSS_NUMBER_MODE] }, { className: 'attribute', begin: '\\b(' + te.join('|') + ')\\b' }, { begin: '\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b' }, { begin: ':', end: ';', contains: [r, n.HEXCOLOR, n.CSS_NUMBER_MODE, e.QUOTE_STRING_MODE, e.APOS_STRING_MODE, n.IMPORTANT] }, { begin: '@(page|font-face)', keywords: { $pattern: i, keyword: '@page @font-face' } }, { begin: '@', end: '[{;]', returnBegin: !0, keywords: { $pattern: /[a-z-]+/, keyword: 'and or not only', attribute: Y.join(' ') }, contains: [{ begin: i, className: 'keyword' }, { begin: /[a-z-]+(?=:)/, className: 'attribute' }, r, e.QUOTE_STRING_MODE, e.APOS_STRING_MODE, n.HEXCOLOR, n.CSS_NUMBER_MODE] }] } }f = e => O(/\b/, e, /\w$/.test(e) ? /\b/ : /\B/), ['Protocol', 'Type'].map(f), ['init', 'self'].map(f), E = d(/[/=\-+!*%<>&|^~?]/, /[\u00A1-\u00A7]/, /[\u00A9\u00AB]/, /[\u00AC\u00AE]/, /[\u00B0\u00B1]/, /[\u00B6\u00BB\u00BF\u00D7\u00F7]/, /[\u2016-\u2017]/, /[\u2020-\u2027]/, /[\u2030-\u203E]/, /[\u2041-\u2053]/, /[\u2055-\u205E]/, /[\u2190-\u23FF]/, /[\u2500-\u2775]/, /[\u2794-\u2BFF]/, /[\u2E00-\u2E7F]/, /[\u3001-\u3003]/, /[\u3008-\u3020]/, /[\u3030]/), O(E, d(E, /[\u0300-\u036F]/, /[\u1DC0-\u1DFF]/, /[\u20D0-\u20FF]/, /[\uFE00-\uFE0F]/, /[\uFE20-\uFE2F]/), '*'), v = d(/[a-zA-Z_]/, /[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/, /[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/, /[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/, /[\u1E00-\u1FFF]/, /[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/, /[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/, /[\u2C00-\u2DFF\u2E80-\u2FFF]/, /[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/, /[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/, /[\uFE47-\uFEFE\uFF00-\uFFFD]/), w = d(v, /\d/, /[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/), o = O(v, w, '*'); O(/[A-Z]/, w, '*'), O(/convention\(/, d('swift', 'block', 'c'), /\)/), O(/objc\(/, o, /\)/); const be = Object.freeze({ __proto__: null, grmr_bash: function (e) { const n = {}; var t = { begin: /\$\{/, end: /\}/, contains: ['self', { begin: /:-/, contains: [n] }] }; Object.assign(n, { className: 'variable', variants: [{ begin: O(/\$[\w\d#@][\w\d_]*/, '(?![\\w\\d])(?![$])') }, t] }); const a = { className: 'subst', begin: /\$\(/, end: /\)/, contains: [e.BACKSLASH_ESCAPE] }; var t = { begin: /<<-?\s*(?=\w+)/, starts: { contains: [e.END_SAME_AS_BEGIN({ begin: /(\w+)/, end: /(\w+)/, className: 'string' })] } }; const i = { className: 'string', begin: /"/, end: /"/, contains: [e.BACKSLASH_ESCAPE, n, a] }; const r = (a.contains.push(i), { begin: /\$\(\(/, end: /\)\)/, contains: [{ begin: /\d+#[0-9a-f]+/, className: 'number' }, e.NUMBER_MODE, n] }); const s = e.SHEBANG({ binary: `(${['fish', 'bash', 'zsh', 'sh', 'csh', 'ksh', 'tcsh', 'dash', 'scsh'].join('|')})`, relevance: 10 }); const o = { className: 'function', begin: /\w[\w\d_]*\s*\(\s*\)\s*\{/, returnBegin: !0, contains: [e.inherit(e.TITLE_MODE, { begin: /\w[\w\d_]*/ })], relevance: 0 }; return { name: 'Bash', aliases: ['sh'], keywords: { $pattern: /\b[a-z._-]+\b/, keyword: ['if', 'then', 'else', 'elif', 'fi', 'for', 'while', 'in', 'do', 'done', 'case', 'esac', 'function'], literal: ['true', 'false'], built_in: 'break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp' }, contains: [s, e.SHEBANG(), o, r, e.HASH_COMMENT_MODE, t, i, { className: '', begin: /\\"/ }, { className: 'string', begin: /'/, end: /'/ }, n] } }, grmr_scss: ge, grmr_css: ge, grmr_javascript: de, grmr_json: ue, grmr_json5: ue, grmr_xml: function (e) { const n = O(/[A-Z_]/, O('(?:', /[A-Z0-9_.-]*:/, ')?'), /[A-Z0-9_.-]*/); const t = { className: 'symbol', begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/ }; const a = { begin: /\s/, contains: [{ className: 'keyword', begin: /#?[a-z_][a-z1-9_-]+/, illegal: /\n/ }] }; const i = e.inherit(a, { begin: /\(/, end: /\)/ }); const r = e.inherit(e.APOS_STRING_MODE, { className: 'string' }); const s = e.inherit(e.QUOTE_STRING_MODE, { className: 'string' }); const o = { endsWithParent: !0, illegal: /</, relevance: 0, contains: [{ className: 'attr', begin: /[A-Za-z0-9._:-]+/, relevance: 0 }, { begin: /=\s*/, relevance: 0, contains: [{ className: 'string', endsParent: !0, variants: [{ begin: /"/, end: /"/, contains: [t] }, { begin: /'/, end: /'/, contains: [t] }, { begin: /[^\s"'=<>`]+/ }] }] }] }; return { name: 'HTML, XML', aliases: ['html', 'xhtml', 'rss', 'atom', 'xjb', 'xsd', 'xsl', 'plist', 'wsf', 'svg'], case_insensitive: !0, contains: [{ className: 'meta', begin: /<![a-z]/, end: />/, relevance: 10, contains: [a, s, r, i, { begin: /\[/, end: /\]/, contains: [{ className: 'meta', begin: /<![a-z]/, end: />/, contains: [a, i, s, r] }] }] }, e.COMMENT(/<!--/, /-->/, { relevance: 10 }), { begin: /<!\[CDATA\[/, end: /\]\]>/, relevance: 10 }, t, { className: 'meta', begin: /<\?xml/, end: /\?>/, relevance: 10 }, { className: 'tag', begin: /<style(?=\s|>)/, end: />/, keywords: { name: 'style' }, contains: [o], starts: { end: /<\/style>/, returnEnd: !0, subLanguage: ['css', 'xml'] } }, { className: 'tag', begin: /<script(?=\s|>)/, end: />/, keywords: { name: 'script' }, contains: [o], starts: { end: /<\/script>/, returnEnd: !0, subLanguage: ['javascript', 'handlebars', 'xml'] } }, { className: 'tag', begin: /<>|<\/>/ }, { className: 'tag', begin: O(/</, k(O(n, d(/\/>/, />/, /\s/)))), end: /\/?>/, contains: [{ className: 'name', begin: n, relevance: 0, starts: o }] }, { className: 'tag', begin: O(/<\//, k(O(n, />/))), contains: [{ className: 'name', begin: n, relevance: 0 }, { begin: />/, relevance: 0, endsParent: !0 }] }] } }, grmr_markdown: function (e) { const n = { begin: /<\/?[A-Za-z_]/, end: '>', subLanguage: 'xml', relevance: 0 }; const t = { variants: [{ begin: /\[.+?\]\[.*?\]/, relevance: 0 }, { begin: /\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/, relevance: 2 }, { begin: O(/\[.+?\]\(/, /[A-Za-z][A-Za-z0-9+.-]*/, /:\/\/.*?\)/), relevance: 2 }, { begin: /\[.+?\]\([./?&#].*?\)/, relevance: 1 }, { begin: /\[.+?\]\(.*?\)/, relevance: 0 }], returnBegin: !0, contains: [{ className: 'string', relevance: 0, begin: '\\[', end: '\\]', excludeBegin: !0, returnEnd: !0 }, { className: 'link', relevance: 0, begin: '\\]\\(', end: '\\)', excludeBegin: !0, excludeEnd: !0 }, { className: 'symbol', relevance: 0, begin: '\\]\\[', end: '\\]', excludeBegin: !0, excludeEnd: !0 }] }; const a = { className: 'strong', contains: [], variants: [{ begin: /_{2}/, end: /_{2}/ }, { begin: /\*{2}/, end: /\*{2}/ }] }; const i = { className: 'emphasis', contains: [], variants: [{ begin: /\*(?!\*)/, end: /\*/ }, { begin: /_(?!_)/, end: /_/, relevance: 0 }] }; a.contains.push(i), i.contains.push(a); let r = [n, t]; a.contains = a.contains.concat(r), i.contains = i.contains.concat(r); const s = { className: 'section', variants: [{ begin: '^#{1,6}', end: '$', contains: r = r.concat(a, i) }, { begin: '(?=^.+?\\n[=-]{2,}$)', contains: [{ begin: '^[=-]*$' }, { begin: '^', end: '\\n', contains: r }] }] }; const o = { className: 'quote', begin: '^>\\s+', contains: r, end: '$' }; return { name: 'Markdown', aliases: ['md', 'mkdown', 'mkd'], contains: [s, n, { className: 'bullet', begin: '^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)', end: '\\s+', excludeEnd: !0 }, a, i, o, { className: 'code', variants: [{ begin: '(`{3,})[^`](.|\\n)*?\\1`*[ ]*' }, { begin: '(~{3,})[^~](.|\\n)*?\\1~*[ ]*' }, { begin: '```', end: '```+[ ]*$' }, { begin: '~~~', end: '~~~+[ ]*$' }, { begin: '`.+?`' }, { begin: '(?=^( {4}|\\t))', contains: [{ begin: '^( {4}|\\t)', end: '(\\n)$' }], relevance: 0 }] }, { begin: '^[-\\*]{3,}', end: '$' }, t, { begin: /^\[[^\n]+\]:/, returnBegin: !0, contains: [{ className: 'symbol', begin: /\[/, end: /\]/, excludeBegin: !0, excludeEnd: !0 }, { className: 'link', begin: /:\s*/, end: /$/, excludeBegin: !0 }] }] } }, grmr_plaintext: function (e) { return { name: 'Plain text', aliases: ['text', 'txt'], disableAutodetect: !0 } }, grmr_shell: function (e) { return { name: 'Shell Session', aliases: ['console', 'shellsession'], contains: [{ className: 'meta', begin: /^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/, starts: { end: /[^\\](?=\s*$)/, subLanguage: 'bash' } }] } }, grmr_typescript: function (e) { R; const n = { $pattern: R, keyword: ae.concat(['type', 'namespace', 'typedef', 'interface', 'public', 'private', 'protected', 'implements', 'declare', 'abstract', 'readonly']), literal: ie, built_in: ce.concat(['any', 'void', 'number', 'boolean', 'string', 'object', 'never', 'enum']), 'variable.language': le }; const t = { className: 'meta', begin: '@[A-Za-z$_][0-9A-Za-z$_]*' }; const a = (e, n, t) => { const a = e.contains.findIndex(e => e.label === n); if (a === -1) throw new Error('can not find mode to replace'); e.contains.splice(a, 1, t) }; const i = de(e); const r = (Object.assign(i.keywords, n), i.exports.PARAMS_CONTAINS.push(t), i.contains = i.contains.concat([t, { beginKeywords: 'namespace', end: /\{/, excludeEnd: !0 }, { beginKeywords: 'interface', end: /\{/, excludeEnd: !0, keywords: 'interface extends' }]), a(i, 'shebang', e.SHEBANG()), a(i, 'use_strict', { className: 'meta', relevance: 10, begin: /^\s*['"]use strict['"]/ }), i.contains.find(e => e.label === 'func.def')); return r.relevance = 0, Object.assign(i, { name: 'TypeScript', aliases: ['ts', 'tsx'] }), i }, grmr_yaml: function (e) { const n = 'true false yes no null'; let t = "[\\w#;/?:@&=+$,.~*'()[\\]]+"; const a = { className: 'string', relevance: 0, variants: [{ begin: /'/, end: /'/ }, { begin: /"/, end: /"/ }, { begin: /\S+/ }], contains: [e.BACKSLASH_ESCAPE, { className: 'template-variable', variants: [{ begin: /\{\{/, end: /\}\}/ }, { begin: /%\{/, end: /\}/ }] }] }; const i = e.inherit(a, { variants: [{ begin: /'/, end: /'/ }, { begin: /"/, end: /"/ }, { begin: /[^\s,{}[\]]+/ }] }); const r = { end: ',', endsWithParent: !0, excludeEnd: !0, keywords: n, relevance: 0 }; const s = { begin: /\{/, end: /\}/, contains: [r], illegal: '\\n', relevance: 0 }; const o = { begin: '\\[', end: '\\]', contains: [r], illegal: '\\n', relevance: 0 }; const l = [...t = [{ className: 'attr', variants: [{ begin: '\\w[\\w :\\/.-]*:(?=[ \t]|$)' }, { begin: '"\\w[\\w :\\/.-]*":(?=[ \t]|$)' }, { begin: "'\\w[\\w :\\/.-]*':(?=[ \t]|$)" }] }, { className: 'meta', begin: '^---\\s*$', relevance: 10 }, { className: 'string', begin: '[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*' }, { begin: '<%[%=-]?', end: '[%-]?%>', subLanguage: 'ruby', excludeBegin: !0, excludeEnd: !0, relevance: 0 }, { className: 'type', begin: '!\\w+!' + t }, { className: 'type', begin: '!<' + t + '>' }, { className: 'type', begin: '!' + t }, { className: 'type', begin: '!!' + t }, { className: 'meta', begin: '&' + e.UNDERSCORE_IDENT_RE + '$' }, { className: 'meta', begin: '\\*' + e.UNDERSCORE_IDENT_RE + '$' }, { className: 'bullet', begin: '-(?=[ ]|$)', relevance: 0 }, e.HASH_COMMENT_MODE, { beginKeywords: n, keywords: { literal: n } }, { className: 'number', begin: '\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b' }, { className: 'number', begin: e.C_NUMBER_RE + '\\b', relevance: 0 }, s, o, a]]; return l.pop(), l.push(i), r.contains = l, { name: 'YAML', case_insensitive: !0, aliases: ['yml'], contains: t } } }); const he = m; for (const B of Object.keys(be)) { const pe = B.replace('grmr_', ''); he.registerLanguage(pe, be[B]) } return he }()); typeof exports === 'object' && typeof module !== 'undefined' && (module.exports = hljs)
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @popperjs/core v2.11.5 - MIT License
3
+ */
4
+
5
+ !(function (e, t) { typeof exports === 'object' && typeof module !== 'undefined' ? t(exports) : typeof define === 'function' && define.amd ? define(['exports'], t) : t((e = typeof globalThis !== 'undefined' ? globalThis : e || self).Popper = {}) }(this, function (e) { 'use strict'; function t (e) { if (e == null) return window; if (e.toString() !== '[object Window]') { const t = e.ownerDocument; return t && t.defaultView || window } return e } function n (e) { return e instanceof t(e).Element || e instanceof Element } function r (e) { return e instanceof t(e).HTMLElement || e instanceof HTMLElement } function o (e) { return typeof ShadowRoot !== 'undefined' && (e instanceof t(e).ShadowRoot || e instanceof ShadowRoot) } const i = Math.max; const a = Math.min; const s = Math.round; function f (e, t) { void 0 === t && (t = !1); const n = e.getBoundingClientRect(); let o = 1; let i = 1; if (r(e) && t) { const a = e.offsetHeight; const f = e.offsetWidth; f > 0 && (o = s(n.width) / f || 1), a > 0 && (i = s(n.height) / a || 1) } return { width: n.width / o, height: n.height / i, top: n.top / i, right: n.right / o, bottom: n.bottom / i, left: n.left / o, x: n.left / o, y: n.top / i } } function c (e) { const n = t(e); return { scrollLeft: n.pageXOffset, scrollTop: n.pageYOffset } } function p (e) { return e ? (e.nodeName || '').toLowerCase() : null } function u (e) { return ((n(e) ? e.ownerDocument : e.document) || window.document).documentElement } function l (e) { return f(u(e)).left + c(e).scrollLeft } function d (e) { return t(e).getComputedStyle(e) } function h (e) { const t = d(e); const n = t.overflow; const r = t.overflowX; const o = t.overflowY; return /auto|scroll|overlay|hidden/.test(n + o + r) } function m (e, n, o) { void 0 === o && (o = !1); let i; let a; const d = r(n); const m = r(n) && (function (e) { const t = e.getBoundingClientRect(); const n = s(t.width) / e.offsetWidth || 1; const r = s(t.height) / e.offsetHeight || 1; return n !== 1 || r !== 1 }(n)); const v = u(n); const g = f(e, m); let y = { scrollLeft: 0, scrollTop: 0 }; let b = { x: 0, y: 0 }; return (d || !d && !o) && ((p(n) !== 'body' || h(v)) && (y = (i = n) !== t(i) && r(i) ? { scrollLeft: (a = i).scrollLeft, scrollTop: a.scrollTop } : c(i)), r(n) ? ((b = f(n, !0)).x += n.clientLeft, b.y += n.clientTop) : v && (b.x = l(v))), { x: g.left + y.scrollLeft - b.x, y: g.top + y.scrollTop - b.y, width: g.width, height: g.height } } function v (e) { const t = f(e); let n = e.offsetWidth; let r = e.offsetHeight; return Math.abs(t.width - n) <= 1 && (n = t.width), Math.abs(t.height - r) <= 1 && (r = t.height), { x: e.offsetLeft, y: e.offsetTop, width: n, height: r } } function g (e) { return p(e) === 'html' ? e : e.assignedSlot || e.parentNode || (o(e) ? e.host : null) || u(e) } function y (e) { return ['html', 'body', '#document'].indexOf(p(e)) >= 0 ? e.ownerDocument.body : r(e) && h(e) ? e : y(g(e)) } function b (e, n) { let r; void 0 === n && (n = []); const o = y(e); const i = o === ((r = e.ownerDocument) == null ? void 0 : r.body); const a = t(o); const s = i ? [a].concat(a.visualViewport || [], h(o) ? o : []) : o; const f = n.concat(s); return i ? f : f.concat(b(g(s))) } function x (e) { return ['table', 'td', 'th'].indexOf(p(e)) >= 0 } function w (e) { return r(e) && d(e).position !== 'fixed' ? e.offsetParent : null } function O (e) { for (var n = t(e), i = w(e); i && x(i) && d(i).position === 'static';)i = w(i); return i && (p(i) === 'html' || p(i) === 'body' && d(i).position === 'static') ? n : i || (function (e) { const t = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1; if (navigator.userAgent.indexOf('Trident') !== -1 && r(e) && d(e).position === 'fixed') return null; let n = g(e); for (o(n) && (n = n.host); r(n) && ['html', 'body'].indexOf(p(n)) < 0;) { const i = d(n); if (i.transform !== 'none' || i.perspective !== 'none' || i.contain === 'paint' || ['transform', 'perspective'].indexOf(i.willChange) !== -1 || t && i.willChange === 'filter' || t && i.filter && i.filter !== 'none') return n; n = n.parentNode } return null }(e)) || n } const j = 'top'; const E = 'bottom'; const D = 'right'; const A = 'left'; const L = 'auto'; const P = [j, E, D, A]; const M = 'start'; const k = 'end'; const W = 'viewport'; const B = 'popper'; const H = P.reduce(function (e, t) { return e.concat([t + '-' + M, t + '-' + k]) }, []); const T = [].concat(P, [L]).reduce(function (e, t) { return e.concat([t, t + '-' + M, t + '-' + k]) }, []); const R = ['beforeRead', 'read', 'afterRead', 'beforeMain', 'main', 'afterMain', 'beforeWrite', 'write', 'afterWrite']; function S (e) { const t = new Map(); const n = new Set(); const r = []; function o (e) { n.add(e.name), [].concat(e.requires || [], e.requiresIfExists || []).forEach(function (e) { if (!n.has(e)) { const r = t.get(e); r && o(r) } }), r.push(e) } return e.forEach(function (e) { t.set(e.name, e) }), e.forEach(function (e) { n.has(e.name) || o(e) }), r } function C (e) { return e.split('-')[0] } function q (e, t) { const n = t.getRootNode && t.getRootNode(); if (e.contains(t)) return !0; if (n && o(n)) { let r = t; do { if (r && e.isSameNode(r)) return !0; r = r.parentNode || r.host } while (r) } return !1 } function V (e) { return Object.assign({}, e, { left: e.x, top: e.y, right: e.x + e.width, bottom: e.y + e.height }) } function N (e, r) { return r === W ? V(function (e) { const n = t(e); const r = u(e); const o = n.visualViewport; let i = r.clientWidth; let a = r.clientHeight; let s = 0; let f = 0; return o && (i = o.width, a = o.height, /^((?!chrome|android).)*safari/i.test(navigator.userAgent) || (s = o.offsetLeft, f = o.offsetTop)), { width: i, height: a, x: s + l(e), y: f } }(e)) : n(r) ? (function (e) { const t = f(e); return t.top = t.top + e.clientTop, t.left = t.left + e.clientLeft, t.bottom = t.top + e.clientHeight, t.right = t.left + e.clientWidth, t.width = e.clientWidth, t.height = e.clientHeight, t.x = t.left, t.y = t.top, t }(r)) : V(function (e) { let t; const n = u(e); const r = c(e); const o = (t = e.ownerDocument) == null ? void 0 : t.body; const a = i(n.scrollWidth, n.clientWidth, o ? o.scrollWidth : 0, o ? o.clientWidth : 0); const s = i(n.scrollHeight, n.clientHeight, o ? o.scrollHeight : 0, o ? o.clientHeight : 0); let f = -r.scrollLeft + l(e); const p = -r.scrollTop; return d(o || n).direction === 'rtl' && (f += i(n.clientWidth, o ? o.clientWidth : 0) - a), { width: a, height: s, x: f, y: p } }(u(e))) } function I (e, t, o) { const s = t === 'clippingParents' ? (function (e) { const t = b(g(e)); const o = ['absolute', 'fixed'].indexOf(d(e).position) >= 0 && r(e) ? O(e) : e; return n(o) ? t.filter(function (e) { return n(e) && q(e, o) && p(e) !== 'body' }) : [] }(e)) : [].concat(t); const f = [].concat(s, [o]); const c = f[0]; const u = f.reduce(function (t, n) { const r = N(e, n); return t.top = i(r.top, t.top), t.right = a(r.right, t.right), t.bottom = a(r.bottom, t.bottom), t.left = i(r.left, t.left), t }, N(e, c)); return u.width = u.right - u.left, u.height = u.bottom - u.top, u.x = u.left, u.y = u.top, u } function _ (e) { return e.split('-')[1] } function F (e) { return ['top', 'bottom'].indexOf(e) >= 0 ? 'x' : 'y' } function U (e) { let t; const n = e.reference; const r = e.element; const o = e.placement; const i = o ? C(o) : null; const a = o ? _(o) : null; const s = n.x + n.width / 2 - r.width / 2; const f = n.y + n.height / 2 - r.height / 2; switch (i) { case j:t = { x: s, y: n.y - r.height }; break; case E:t = { x: s, y: n.y + n.height }; break; case D:t = { x: n.x + n.width, y: f }; break; case A:t = { x: n.x - r.width, y: f }; break; default:t = { x: n.x, y: n.y } } const c = i ? F(i) : null; if (c != null) { const p = c === 'y' ? 'height' : 'width'; switch (a) { case M:t[c] = t[c] - (n[p] / 2 - r[p] / 2); break; case k:t[c] = t[c] + (n[p] / 2 - r[p] / 2) } } return t } function z (e) { return Object.assign({}, { top: 0, right: 0, bottom: 0, left: 0 }, e) } function X (e, t) { return t.reduce(function (t, n) { return t[n] = e, t }, {}) } function Y (e, t) { void 0 === t && (t = {}); const r = t; const o = r.placement; const i = void 0 === o ? e.placement : o; const a = r.boundary; const s = void 0 === a ? 'clippingParents' : a; const c = r.rootBoundary; const p = void 0 === c ? W : c; const l = r.elementContext; const d = void 0 === l ? B : l; const h = r.altBoundary; const m = void 0 !== h && h; const v = r.padding; const g = void 0 === v ? 0 : v; const y = z(typeof g !== 'number' ? g : X(g, P)); const b = d === B ? 'reference' : B; const x = e.rects.popper; const w = e.elements[m ? b : d]; const O = I(n(w) ? w : w.contextElement || u(e.elements.popper), s, p); const A = f(e.elements.reference); const L = U({ reference: A, element: x, strategy: 'absolute', placement: i }); const M = V(Object.assign({}, x, L)); const k = d === B ? M : A; const H = { top: O.top - k.top + y.top, bottom: k.bottom - O.bottom + y.bottom, left: O.left - k.left + y.left, right: k.right - O.right + y.right }; const T = e.modifiersData.offset; if (d === B && T) { const R = T[i]; Object.keys(H).forEach(function (e) { const t = [D, E].indexOf(e) >= 0 ? 1 : -1; const n = [j, E].indexOf(e) >= 0 ? 'y' : 'x'; H[e] += R[n] * t }) } return H } const G = { placement: 'bottom', modifiers: [], strategy: 'absolute' }; function J () { for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++)t[n] = arguments[n]; return !t.some(function (e) { return !(e && typeof e.getBoundingClientRect === 'function') }) } function K (e) { void 0 === e && (e = {}); const t = e; const r = t.defaultModifiers; const o = void 0 === r ? [] : r; const i = t.defaultOptions; const a = void 0 === i ? G : i; return function (e, t, r) { void 0 === r && (r = a); let i; let s; let f = { placement: 'bottom', orderedModifiers: [], options: Object.assign({}, G, a), modifiersData: {}, elements: { reference: e, popper: t }, attributes: {}, styles: {} }; let c = []; let p = !1; var u = { state: f, setOptions: function (r) { const i = typeof r === 'function' ? r(f.options) : r; l(), f.options = Object.assign({}, a, f.options, i), f.scrollParents = { reference: n(e) ? b(e) : e.contextElement ? b(e.contextElement) : [], popper: b(t) }; let s; let p; const d = (function (e) { const t = S(e); return R.reduce(function (e, n) { return e.concat(t.filter(function (e) { return e.phase === n })) }, []) }((s = [].concat(o, f.options.modifiers), p = s.reduce(function (e, t) { const n = e[t.name]; return e[t.name] = n ? Object.assign({}, n, t, { options: Object.assign({}, n.options, t.options), data: Object.assign({}, n.data, t.data) }) : t, e }, {}), Object.keys(p).map(function (e) { return p[e] })))); return f.orderedModifiers = d.filter(function (e) { return e.enabled }), f.orderedModifiers.forEach(function (e) { const t = e.name; const n = e.options; const r = void 0 === n ? {} : n; const o = e.effect; if (typeof o === 'function') { const i = o({ state: f, name: t, instance: u, options: r }); const a = function () {}; c.push(i || a) } }), u.update() }, forceUpdate: function () { if (!p) { const e = f.elements; const t = e.reference; const n = e.popper; if (J(t, n)) { f.rects = { reference: m(t, O(n), f.options.strategy === 'fixed'), popper: v(n) }, f.reset = !1, f.placement = f.options.placement, f.orderedModifiers.forEach(function (e) { return f.modifiersData[e.name] = Object.assign({}, e.data) }); for (let r = 0; r < f.orderedModifiers.length; r++) if (!0 !== f.reset) { const o = f.orderedModifiers[r]; const i = o.fn; const a = o.options; const s = void 0 === a ? {} : a; const c = o.name; typeof i === 'function' && (f = i({ state: f, options: s, name: c, instance: u }) || f) } else f.reset = !1, r = -1 } } }, update: (i = function () { return new Promise(function (e) { u.forceUpdate(), e(f) }) }, function () { return s || (s = new Promise(function (e) { Promise.resolve().then(function () { s = void 0, e(i()) }) })), s }), destroy: function () { l(), p = !0 } }; if (!J(e, t)) return u; function l () { c.forEach(function (e) { return e() }), c = [] } return u.setOptions(r).then(function (e) { !p && r.onFirstUpdate && r.onFirstUpdate(e) }), u } } const Q = { passive: !0 }; const Z = { name: 'eventListeners', enabled: !0, phase: 'write', fn: function () {}, effect: function (e) { const n = e.state; const r = e.instance; const o = e.options; const i = o.scroll; const a = void 0 === i || i; const s = o.resize; const f = void 0 === s || s; const c = t(n.elements.popper); const p = [].concat(n.scrollParents.reference, n.scrollParents.popper); return a && p.forEach(function (e) { e.addEventListener('scroll', r.update, Q) }), f && c.addEventListener('resize', r.update, Q), function () { a && p.forEach(function (e) { e.removeEventListener('scroll', r.update, Q) }), f && c.removeEventListener('resize', r.update, Q) } }, data: {} }; const $ = { name: 'popperOffsets', enabled: !0, phase: 'read', fn: function (e) { const t = e.state; const n = e.name; t.modifiersData[n] = U({ reference: t.rects.reference, element: t.rects.popper, strategy: 'absolute', placement: t.placement }) }, data: {} }; const ee = { top: 'auto', right: 'auto', bottom: 'auto', left: 'auto' }; function te (e) { let n; const r = e.popper; const o = e.popperRect; const i = e.placement; const a = e.variation; const f = e.offsets; const c = e.position; const p = e.gpuAcceleration; const l = e.adaptive; const h = e.roundOffsets; const m = e.isFixed; const v = f.x; let g = void 0 === v ? 0 : v; const y = f.y; let b = void 0 === y ? 0 : y; const x = typeof h === 'function' ? h({ x: g, y: b }) : { x: g, y: b }; g = x.x, b = x.y; const w = f.hasOwnProperty('x'); const L = f.hasOwnProperty('y'); let P = A; let M = j; const W = window; if (l) { let B = O(r); let H = 'clientHeight'; let T = 'clientWidth'; if (B === t(r) && d(B = u(r)).position !== 'static' && c === 'absolute' && (H = 'scrollHeight', T = 'scrollWidth'), B = B, i === j || (i === A || i === D) && a === k)M = E, b -= (m && B === W && W.visualViewport ? W.visualViewport.height : B[H]) - o.height, b *= p ? 1 : -1; if (i === A || (i === j || i === E) && a === k)P = D, g -= (m && B === W && W.visualViewport ? W.visualViewport.width : B[T]) - o.width, g *= p ? 1 : -1 } let R; const S = Object.assign({ position: c }, l && ee); const C = !0 === h ? (function (e) { const t = e.x; const n = e.y; const r = window.devicePixelRatio || 1; return { x: s(t * r) / r || 0, y: s(n * r) / r || 0 } }({ x: g, y: b })) : { x: g, y: b }; return g = C.x, b = C.y, p ? Object.assign({}, S, ((R = {})[M] = L ? '0' : '', R[P] = w ? '0' : '', R.transform = (W.devicePixelRatio || 1) <= 1 ? 'translate(' + g + 'px, ' + b + 'px)' : 'translate3d(' + g + 'px, ' + b + 'px, 0)', R)) : Object.assign({}, S, ((n = {})[M] = L ? b + 'px' : '', n[P] = w ? g + 'px' : '', n.transform = '', n)) } const ne = { name: 'computeStyles', enabled: !0, phase: 'beforeWrite', fn: function (e) { const t = e.state; const n = e.options; const r = n.gpuAcceleration; const o = void 0 === r || r; const i = n.adaptive; const a = void 0 === i || i; const s = n.roundOffsets; const f = void 0 === s || s; const c = { placement: C(t.placement), variation: _(t.placement), popper: t.elements.popper, popperRect: t.rects.popper, gpuAcceleration: o, isFixed: t.options.strategy === 'fixed' }; t.modifiersData.popperOffsets != null && (t.styles.popper = Object.assign({}, t.styles.popper, te(Object.assign({}, c, { offsets: t.modifiersData.popperOffsets, position: t.options.strategy, adaptive: a, roundOffsets: f })))), t.modifiersData.arrow != null && (t.styles.arrow = Object.assign({}, t.styles.arrow, te(Object.assign({}, c, { offsets: t.modifiersData.arrow, position: 'absolute', adaptive: !1, roundOffsets: f })))), t.attributes.popper = Object.assign({}, t.attributes.popper, { 'data-popper-placement': t.placement }) }, data: {} }; const re = { name: 'applyStyles', enabled: !0, phase: 'write', fn: function (e) { const t = e.state; Object.keys(t.elements).forEach(function (e) { const n = t.styles[e] || {}; const o = t.attributes[e] || {}; const i = t.elements[e]; r(i) && p(i) && (Object.assign(i.style, n), Object.keys(o).forEach(function (e) { const t = o[e]; !1 === t ? i.removeAttribute(e) : i.setAttribute(e, !0 === t ? '' : t) })) }) }, effect: function (e) { const t = e.state; const n = { popper: { position: t.options.strategy, left: '0', top: '0', margin: '0' }, arrow: { position: 'absolute' }, reference: {} }; return Object.assign(t.elements.popper.style, n.popper), t.styles = n, t.elements.arrow && Object.assign(t.elements.arrow.style, n.arrow), function () { Object.keys(t.elements).forEach(function (e) { const o = t.elements[e]; const i = t.attributes[e] || {}; const a = Object.keys(t.styles.hasOwnProperty(e) ? t.styles[e] : n[e]).reduce(function (e, t) { return e[t] = '', e }, {}); r(o) && p(o) && (Object.assign(o.style, a), Object.keys(i).forEach(function (e) { o.removeAttribute(e) })) }) } }, requires: ['computeStyles'] }; const oe = { name: 'offset', enabled: !0, phase: 'main', requires: ['popperOffsets'], fn: function (e) { const t = e.state; const n = e.options; const r = e.name; const o = n.offset; const i = void 0 === o ? [0, 0] : o; const a = T.reduce(function (e, n) { return e[n] = (function (e, t, n) { const r = C(e); const o = [A, j].indexOf(r) >= 0 ? -1 : 1; const i = "function"===typeof n ? n(Object.assign({}, t, { placement: e })) : n; let a = i[0]; let s = i[1]; return a = a || 0, s = (s || 0) * o, [A, D].indexOf(r) >= 0 ? { x: s, y: a } : { x: a, y: s } }(n, t.rects, i)), e }, {}); const s = a[t.placement]; const f = s.x; const c = s.y; t.modifiersData.popperOffsets != null && (t.modifiersData.popperOffsets.x += f, t.modifiersData.popperOffsets.y += c), t.modifiersData[r] = a } }; const ie = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' }; function ae (e) { return e.replace(/left|right|bottom|top/g, function (e) { return ie[e] }) } const se = { start: 'end', end: 'start' }; function fe (e) { return e.replace(/start|end/g, function (e) { return se[e] }) } function ce (e, t) { void 0 === t && (t = {}); const n = t; const r = n.placement; const o = n.boundary; const i = n.rootBoundary; const a = n.padding; const s = n.flipVariations; const f = n.allowedAutoPlacements; const c = void 0 === f ? T : f; const p = _(r); const u = p ? s ? H : H.filter(function (e) { return _(e) === p }) : P; let l = u.filter(function (e) { return c.indexOf(e) >= 0 }); l.length === 0 && (l = u); const d = l.reduce(function (t, n) { return t[n] = Y(e, { placement: n, boundary: o, rootBoundary: i, padding: a })[C(n)], t }, {}); return Object.keys(d).sort(function (e, t) { return d[e] - d[t] }) } const pe = { name: 'flip', enabled: !0, phase: 'main', fn: function (e) { const t = e.state; const n = e.options; const r = e.name; if (!t.modifiersData[r]._skip) { for (var o = n.mainAxis, i = void 0 === o || o, a = n.altAxis, s = void 0 === a || a, f = n.fallbackPlacements, c = n.padding, p = n.boundary, u = n.rootBoundary, l = n.altBoundary, d = n.flipVariations, h = void 0 === d || d, m = n.allowedAutoPlacements, v = t.options.placement, g = C(v), y = f || (g === v || !h ? [ae(v)] : (function (e) { if (C(e) === L) return []; const t = ae(e); return [fe(e), t, fe(t)] }(v))), b = [v].concat(y).reduce(function (e, n) { return e.concat(C(n) === L ? ce(t, { placement: n, boundary: p, rootBoundary: u, padding: c, flipVariations: h, allowedAutoPlacements: m }) : n) }, []), x = t.rects.reference, w = t.rects.popper, O = new Map(), P = !0, k = b[0], W = 0; W < b.length; W++) { const B = b[W]; const H = C(B); const T = _(B) === M; const R = [j, E].indexOf(H) >= 0; const S = R ? 'width' : 'height'; const q = Y(t, { placement: B, boundary: p, rootBoundary: u, altBoundary: l, padding: c }); let V = R ? T ? D : A : T ? E : j; x[S] > w[S] && (V = ae(V)); const N = ae(V); const I = []; if (i && I.push(q[H] <= 0), s && I.push(q[V] <= 0, q[N] <= 0), I.every(function (e) { return e })) { k = B, P = !1; break }O.set(B, I) } if (P) for (let F = function (e) { const t = b.find(function (t) { const n = O.get(t); if (n) return n.slice(0, e).every(function (e) { return e }) }); if (t) return k = t, 'break' }, U = h ? 3 : 1; U > 0; U--) { if (F(U) === 'break') break }t.placement !== k && (t.modifiersData[r]._skip = !0, t.placement = k, t.reset = !0) } }, requiresIfExists: ['offset'], data: { _skip: !1 } }; function ue (e, t, n) { return i(e, a(t, n)) } const le = { name: 'preventOverflow', enabled: !0, phase: 'main', fn: function (e) { const t = e.state; const n = e.options; const r = e.name; const o = n.mainAxis; const s = void 0 === o || o; const f = n.altAxis; const c = void 0 !== f && f; const p = n.boundary; const u = n.rootBoundary; const l = n.altBoundary; const d = n.padding; const h = n.tether; const m = void 0 === h || h; const g = n.tetherOffset; const y = void 0 === g ? 0 : g; const b = Y(t, { boundary: p, rootBoundary: u, padding: d, altBoundary: l }); const x = C(t.placement); const w = _(t.placement); const L = !w; const P = F(x); const k = P === 'x' ? 'y' : 'x'; const W = t.modifiersData.popperOffsets; const B = t.rects.reference; const H = t.rects.popper; const T = typeof y === 'function' ? y(Object.assign({}, t.rects, { placement: t.placement })) : y; const R = typeof T === 'number' ? { mainAxis: T, altAxis: T } : Object.assign({ mainAxis: 0, altAxis: 0 }, T); const S = t.modifiersData.offset ? t.modifiersData.offset[t.placement] : null; const q = { x: 0, y: 0 }; if (W) { if (s) { let V; const N = P === 'y' ? j : A; const I = P === 'y' ? E : D; const U = P === 'y' ? 'height' : 'width'; const z = W[P]; const X = z + b[N]; const G = z - b[I]; const J = m ? -H[U] / 2 : 0; const K = w === M ? B[U] : H[U]; const Q = w === M ? -H[U] : -B[U]; const Z = t.elements.arrow; const $ = m && Z ? v(Z) : { width: 0, height: 0 }; const ee = t.modifiersData['arrow#persistent'] ? t.modifiersData['arrow#persistent'].padding : { top: 0, right: 0, bottom: 0, left: 0 }; const te = ee[N]; const ne = ee[I]; const re = ue(0, B[U], $[U]); const oe = L ? B[U] / 2 - J - re - te - R.mainAxis : K - re - te - R.mainAxis; const ie = L ? -B[U] / 2 + J + re + ne + R.mainAxis : Q + re + ne + R.mainAxis; const ae = t.elements.arrow && O(t.elements.arrow); const se = ae ? P === 'y' ? ae.clientTop || 0 : ae.clientLeft || 0 : 0; const fe = (V = S == null ? void 0 : S[P]) != null ? V : 0; const ce = z + ie - fe; const pe = ue(m ? a(X, z + oe - fe - se) : X, z, m ? i(G, ce) : G); W[P] = pe, q[P] = pe - z } if (c) { let le; const de = P === 'x' ? j : A; const he = P === 'x' ? E : D; const me = W[k]; const ve = k === 'y' ? 'height' : 'width'; const ge = me + b[de]; const ye = me - b[he]; const be = [j, A].indexOf(x) !== -1; const xe = (le = S == null ? void 0 : S[k]) != null ? le : 0; const we = be ? ge : me - B[ve] - H[ve] - xe + R.altAxis; const Oe = be ? me + B[ve] + H[ve] - xe - R.altAxis : ye; const je = m && be ? (function (e, t, n) { const r = ue(e, t, n); return r > n ? n : r }(we, me, Oe)) : ue(m ? we : ge, me, m ? Oe : ye); W[k] = je, q[k] = je - me }t.modifiersData[r] = q } }, requiresIfExists: ['offset'] }; const de = { name: 'arrow', enabled: !0, phase: 'main', fn: function (e) { let t; const n = e.state; const r = e.name; const o = e.options; const i = n.elements.arrow; const a = n.modifiersData.popperOffsets; const s = C(n.placement); const f = F(s); const c = [A, D].indexOf(s) >= 0 ? 'height' : 'width'; if (i && a) { const p = (function (e, t) { return z(typeof (e = typeof e === 'function' ? e(Object.assign({}, t.rects, { placement: t.placement })) : e) !== 'number' ? e : X(e, P)) }(o.padding, n)); const u = v(i); const l = f === 'y' ? j : A; const d = f === 'y' ? E : D; const h = n.rects.reference[c] + n.rects.reference[f] - a[f] - n.rects.popper[c]; const m = a[f] - n.rects.reference[f]; const g = O(i); const y = g ? f === 'y' ? g.clientHeight || 0 : g.clientWidth || 0 : 0; const b = h / 2 - m / 2; const x = p[l]; const w = y - u[c] - p[d]; const L = y / 2 - u[c] / 2 + b; const M = ue(x, L, w); const k = f; n.modifiersData[r] = ((t = {})[k] = M, t.centerOffset = M - L, t) } }, effect: function (e) { const t = e.state; const n = e.options.element; let r = void 0 === n ? '[data-popper-arrow]' : n; r != null && (typeof r !== 'string' || (r = t.elements.popper.querySelector(r))) && q(t.elements.popper, r) && (t.elements.arrow = r) }, requires: ['popperOffsets'], requiresIfExists: ['preventOverflow'] }; function he (e, t, n) { return void 0 === n && (n = { x: 0, y: 0 }), { top: e.top - t.height - n.y, right: e.right - t.width + n.x, bottom: e.bottom - t.height + n.y, left: e.left - t.width - n.x } } function me (e) { return [j, D, E, A].some(function (t) { return e[t] >= 0 }) } const ve = { name: 'hide', enabled: !0, phase: 'main', requiresIfExists: ['preventOverflow'], fn: function (e) { const t = e.state; const n = e.name; const r = t.rects.reference; const o = t.rects.popper; const i = t.modifiersData.preventOverflow; const a = Y(t, { elementContext: 'reference' }); const s = Y(t, { altBoundary: !0 }); const f = he(a, r); const c = he(s, o, i); const p = me(f); const u = me(c); t.modifiersData[n] = { referenceClippingOffsets: f, popperEscapeOffsets: c, isReferenceHidden: p, hasPopperEscaped: u }, t.attributes.popper = Object.assign({}, t.attributes.popper, { 'data-popper-reference-hidden': p, 'data-popper-escaped': u }) } }; const ge = K({ defaultModifiers: [Z, $, ne, re] }); const ye = [Z, $, ne, re, oe, pe, le, de, ve]; const be = K({ defaultModifiers: ye }); e.applyStyles = re, e.arrow = de, e.computeStyles = ne, e.createPopper = be, e.createPopperLite = ge, e.defaultModifiers = ye, e.detectOverflow = Y, e.eventListeners = Z, e.flip = pe, e.hide = ve, e.offset = oe, e.popperGenerator = K, e.popperOffsets = $, e.preventOverflow = le, Object.defineProperty(e, '__esModule', { value: !0 }) }))
@@ -0,0 +1 @@
1
+ !(function (t, e) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = e(require('@popperjs/core')) : typeof define === 'function' && define.amd ? define(['@popperjs/core'], e) : (t = t || self).tippy = e(t.Popper) }(this, function (t) { 'use strict'; const e = typeof window !== 'undefined' && typeof document !== 'undefined'; const n = !!e && !!window.msCrypto; const r = { passive: !0, capture: !0 }; const o = function () { return document.body }; function i (t, e, n) { if (Array.isArray(t)) { const r = t[e]; return r == null ? Array.isArray(n) ? n[e] : n : r } return t } function a (t, e) { const n = {}.toString.call(t); return n.indexOf('[object') === 0 && n.indexOf(e + ']') > -1 } function s (t, e) { return typeof t === 'function' ? t.apply(void 0, e) : t } function u (t, e) { return e === 0 ? t : function (r) { clearTimeout(n), n = setTimeout(function () { t(r) }, e) }; let n } function p (t, e) { const n = Object.assign({}, t); return e.forEach(function (t) { delete n[t] }), n } function c (t) { return [].concat(t) } function f (t, e) { t.indexOf(e) === -1 && t.push(e) } function l (t) { return t.split('-')[0] } function d (t) { return [].slice.call(t) } function v (t) { return Object.keys(t).reduce(function (e, n) { return void 0 !== t[n] && (e[n] = t[n]), e }, {}) } function m () { return document.createElement('div') } function g (t) { return ['Element', 'Fragment'].some(function (e) { return a(t, e) }) } function h (t) { return a(t, 'MouseEvent') } function b (t) { return !(!t || !t._tippy || t._tippy.reference !== t) } function y (t) { return g(t) ? [t] : (function (t) { return a(t, 'NodeList') }(t)) ? d(t) : Array.isArray(t) ? t : d(document.querySelectorAll(t)) } function w (t, e) { t.forEach(function (t) { t && (t.style.transitionDuration = e + 'ms') }) } function x (t, e) { t.forEach(function (t) { t && t.setAttribute('data-state', e) }) } function E (t) { let e; const n = c(t)[0]; return n != null && (e = n.ownerDocument) != null && e.body ? n.ownerDocument : document } function O (t, e, n) { const r = e + 'EventListener'; ['transitionend', 'webkitTransitionEnd'].forEach(function (e) { t[r](e, n) }) } function C (t, e) { for (let n = e; n;) { var r; if (t.contains(n)) return !0; n = n.getRootNode == null || (r = n.getRootNode()) == null ? void 0 : r.host } return !1 } const T = { isTouch: !1 }; let A = 0; function L () { T.isTouch || (T.isTouch = !0, window.performance && document.addEventListener('mousemove', D)) } function D () { const t = performance.now(); t - A < 20 && (T.isTouch = !1, document.removeEventListener('mousemove', D)), A = t } function k () { const t = document.activeElement; if (b(t)) { const e = t._tippy; t.blur && !e.state.isVisible && t.blur() } } const R = Object.assign({ appendTo: o, aria: { content: 'auto', expanded: 'auto' }, delay: 0, duration: [300, 250], getReferenceClientRect: null, hideOnClick: !0, ignoreAttributes: !1, interactive: !1, interactiveBorder: 2, interactiveDebounce: 0, moveTransition: '', offset: [0, 10], onAfterUpdate: function () {}, onBeforeUpdate: function () {}, onCreate: function () {}, onDestroy: function () {}, onHidden: function () {}, onHide: function () {}, onMount: function () {}, onShow: function () {}, onShown: function () {}, onTrigger: function () {}, onUntrigger: function () {}, onClickOutside: function () {}, placement: 'top', plugins: [], popperOptions: {}, render: null, showOnCreate: !1, touch: !0, trigger: 'mouseenter focus', triggerTarget: null }, { animateFill: !1, followCursor: !1, inlinePositioning: !1, sticky: !1 }, { allowHTML: !1, animation: 'fade', arrow: !0, content: '', inertia: !1, maxWidth: 350, role: 'tooltip', theme: '', zIndex: 9999 }); const P = Object.keys(R); function j (t) { const e = (t.plugins || []).reduce(function (e, n) { let r; const o = n.name; const i = n.defaultValue; o && (e[o] = void 0 !== t[o] ? t[o] : (r = R[o]) != null ? r : i); return e }, {}); return Object.assign({}, t, e) } function M (t, e) { const n = Object.assign({}, e, { content: s(e.content, [t]) }, e.ignoreAttributes ? {} : (function (t, e) { return (e ? Object.keys(j(Object.assign({}, R, { plugins: e }))) : P).reduce(function (e, n) { const r = (t.getAttribute('data-tippy-' + n) || '').trim(); if (!r) return e; if (n === 'content')e[n] = r; else try { e[n] = JSON.parse(r) } catch (t) { e[n] = r } return e }, {}) }(t, e.plugins))); return n.aria = Object.assign({}, R.aria, n.aria), n.aria = { expanded: n.aria.expanded === 'auto' ? e.interactive : n.aria.expanded, content: n.aria.content === 'auto' ? e.interactive ? null : 'describedby' : n.aria.content }, n } function V (t, e) { t.innerHTML = e } function I (t) { const e = m(); return !0 === t ? e.className = 'tippy-arrow' : (e.className = 'tippy-svg-arrow', g(t) ? e.appendChild(t) : V(e, t)), e } function S (t, e) { g(e.content) ? (V(t, ''), t.appendChild(e.content)) : typeof e.content !== 'function' && (e.allowHTML ? V(t, e.content) : t.textContent = e.content) } function B (t) { const e = t.firstElementChild; const n = d(e.children); return { box: e, content: n.find(function (t) { return t.classList.contains('tippy-content') }), arrow: n.find(function (t) { return t.classList.contains('tippy-arrow') || t.classList.contains('tippy-svg-arrow') }), backdrop: n.find(function (t) { return t.classList.contains('tippy-backdrop') }) } } function N (t) { const e = m(); const n = m(); n.className = 'tippy-box', n.setAttribute('data-state', 'hidden'), n.setAttribute('tabindex', '-1'); const r = m(); function o (n, r) { const o = B(e); const i = o.box; const a = o.content; const s = o.arrow; r.theme ? i.setAttribute('data-theme', r.theme) : i.removeAttribute('data-theme'), typeof r.animation === 'string' ? i.setAttribute('data-animation', r.animation) : i.removeAttribute('data-animation'), r.inertia ? i.setAttribute('data-inertia', '') : i.removeAttribute('data-inertia'), i.style.maxWidth = typeof r.maxWidth === 'number' ? r.maxWidth + 'px' : r.maxWidth, r.role ? i.setAttribute('role', r.role) : i.removeAttribute('role'), n.content === r.content && n.allowHTML === r.allowHTML || S(a, t.props), r.arrow ? s ? n.arrow !== r.arrow && (i.removeChild(s), i.appendChild(I(r.arrow))) : i.appendChild(I(r.arrow)) : s && i.removeChild(s) } return r.className = 'tippy-content', r.setAttribute('data-state', 'hidden'), S(r, t.props), e.appendChild(n), n.appendChild(r), o(t.props, t.props), { popper: e, onUpdate: o } }N.$$tippy = !0; let H = 1; let U = []; let _ = []; function z (e, a) { let p; let g; let b; let y; let A; let L; let D; let k; const P = M(e, Object.assign({}, R, j(v(a)))); let V = !1; let I = !1; let S = !1; let N = !1; let z = []; let F = u(wt, P.interactiveDebounce); const W = H++; const X = (k = P.plugins).filter(function (t, e) { return k.indexOf(t) === e }); var Y = { id: W, reference: e, popper: m(), popperInstance: null, props: P, state: { isEnabled: !0, isVisible: !1, isDestroyed: !1, isMounted: !1, isShown: !1 }, plugins: X, clearDelayTimeouts: function () { clearTimeout(p), clearTimeout(g), cancelAnimationFrame(b) }, setProps: function (t) { if (Y.state.isDestroyed) return; at('onBeforeUpdate', [Y, t]), bt(); const n = Y.props; const r = M(e, Object.assign({}, n, v(t), { ignoreAttributes: !0 })); Y.props = r, ht(), n.interactiveDebounce !== r.interactiveDebounce && (pt(), F = u(wt, r.interactiveDebounce)); n.triggerTarget && !r.triggerTarget ? c(n.triggerTarget).forEach(function (t) { t.removeAttribute('aria-expanded') }) : r.triggerTarget && e.removeAttribute('aria-expanded'); ut(), it(), J && J(n, r); Y.popperInstance && (Ct(), At().forEach(function (t) { requestAnimationFrame(t._tippy.popperInstance.forceUpdate) })); at('onAfterUpdate', [Y, t]) }, setContent: function (t) { Y.setProps({ content: t }) }, show: function () { const t = Y.state.isVisible; const e = Y.state.isDestroyed; const n = !Y.state.isEnabled; const r = T.isTouch && !Y.props.touch; const a = i(Y.props.duration, 0, R.duration); if (t || e || n || r) return; if (et().hasAttribute('disabled')) return; if (at('onShow', [Y], !1), !1 === Y.props.onShow(Y)) return; Y.state.isVisible = !0, tt() && ($.style.visibility = 'visible'); it(), dt(), Y.state.isMounted || ($.style.transition = 'none'); if (tt()) { const u = rt(); const p = u.box; const c = u.content; w([p, c], 0) }L = function () { let t; if (Y.state.isVisible && !N) { if (N = !0, $.offsetHeight, $.style.transition = Y.props.moveTransition, tt() && Y.props.animation) { const e = rt(); const n = e.box; const r = e.content; w([n, r], a), x([n, r], 'visible') }st(), ut(), f(_, Y), (t = Y.popperInstance) == null || t.forceUpdate(), at('onMount', [Y]), Y.props.animation && tt() && (function (t, e) { mt(t, e) }(a, function () { Y.state.isShown = !0, at('onShown', [Y]) })) } }, (function () { let t; const e = Y.props.appendTo; const n = et(); t = Y.props.interactive && e === o || e === 'parent' ? n.parentNode : s(e, [n]); t.contains($) || t.appendChild($); Y.state.isMounted = !0, Ct() }()) }, hide: function () { const t = !Y.state.isVisible; const e = Y.state.isDestroyed; const n = !Y.state.isEnabled; const r = i(Y.props.duration, 1, R.duration); if (t || e || n) return; if (at('onHide', [Y], !1), !1 === Y.props.onHide(Y)) return; Y.state.isVisible = !1, Y.state.isShown = !1, N = !1, V = !1, tt() && ($.style.visibility = 'hidden'); if (pt(), vt(), it(!0), tt()) { const o = rt(); const a = o.box; const s = o.content; Y.props.animation && (w([a, s], r), x([a, s], 'hidden')) }st(), ut(), Y.props.animation ? tt() && (function (t, e) { mt(t, function () { !Y.state.isVisible && $.parentNode && $.parentNode.contains($) && e() }) }(r, Y.unmount)) : Y.unmount() }, hideWithInteractivity: function (t) { nt().addEventListener('mousemove', F), f(U, F), F(t) }, enable: function () { Y.state.isEnabled = !0 }, disable: function () { Y.hide(), Y.state.isEnabled = !1 }, unmount: function () { Y.state.isVisible && Y.hide(); if (!Y.state.isMounted) return; Tt(), At().forEach(function (t) { t._tippy.unmount() }), $.parentNode && $.parentNode.removeChild($); _ = _.filter(function (t) { return t !== Y }), Y.state.isMounted = !1, at('onHidden', [Y]) }, destroy: function () { if (Y.state.isDestroyed) return; Y.clearDelayTimeouts(), Y.unmount(), bt(), delete e._tippy, Y.state.isDestroyed = !0, at('onDestroy', [Y]) } }; if (!P.render) return Y; const q = P.render(Y); var $ = q.popper; var J = q.onUpdate; $.setAttribute('data-tippy-root', ''), $.id = 'tippy-' + Y.id, Y.popper = $, e._tippy = Y, $._tippy = Y; const G = X.map(function (t) { return t.fn(Y) }); const K = e.hasAttribute('aria-expanded'); return ht(), ut(), it(), at('onCreate', [Y]), P.showOnCreate && Lt(), $.addEventListener('mouseenter', function () { Y.props.interactive && Y.state.isVisible && Y.clearDelayTimeouts() }), $.addEventListener('mouseleave', function () { Y.props.interactive && Y.props.trigger.indexOf('mouseenter') >= 0 && nt().addEventListener('mousemove', F) }), Y; function Q () { const t = Y.props.touch; return Array.isArray(t) ? t : [t, 0] } function Z () { return Q()[0] === 'hold' } function tt () { let t; return !((t = Y.props.render) == null || !t.$$tippy) } function et () { return D || e } function nt () { const t = et().parentNode; return t ? E(t) : document } function rt () { return B($) } function ot (t) { return Y.state.isMounted && !Y.state.isVisible || T.isTouch || y && y.type === 'focus' ? 0 : i(Y.props.delay, t ? 0 : 1, R.delay) } function it (t) { void 0 === t && (t = !1), $.style.pointerEvents = Y.props.interactive && !t ? '' : 'none', $.style.zIndex = '' + Y.props.zIndex } function at (t, e, n) { let r; (void 0 === n && (n = !0), G.forEach(function (n) { n[t] && n[t].apply(n, e) }), n) && (r = Y.props)[t].apply(r, e) } function st () { const t = Y.props.aria; if (t.content) { const n = 'aria-' + t.content; const r = $.id; c(Y.props.triggerTarget || e).forEach(function (t) { const e = t.getAttribute(n); if (Y.state.isVisible)t.setAttribute(n, e ? e + ' ' + r : r); else { const o = e && e.replace(r, '').trim(); o ? t.setAttribute(n, o) : t.removeAttribute(n) } }) } } function ut () { !K && Y.props.aria.expanded && c(Y.props.triggerTarget || e).forEach(function (t) { Y.props.interactive ? t.setAttribute('aria-expanded', Y.state.isVisible && t === et() ? 'true' : 'false') : t.removeAttribute('aria-expanded') }) } function pt () { nt().removeEventListener('mousemove', F), U = U.filter(function (t) { return t !== F }) } function ct (t) { if (!T.isTouch || !S && t.type !== 'mousedown') { const n = t.composedPath && t.composedPath()[0] || t.target; if (!Y.props.interactive || !C($, n)) { if (c(Y.props.triggerTarget || e).some(function (t) { return C(t, n) })) { if (T.isTouch) return; if (Y.state.isVisible && Y.props.trigger.indexOf('click') >= 0) return } else at('onClickOutside', [Y, t]); !0 === Y.props.hideOnClick && (Y.clearDelayTimeouts(), Y.hide(), I = !0, setTimeout(function () { I = !1 }), Y.state.isMounted || vt()) } } } function ft () { S = !0 } function lt () { S = !1 } function dt () { const t = nt(); t.addEventListener('mousedown', ct, !0), t.addEventListener('touchend', ct, r), t.addEventListener('touchstart', lt, r), t.addEventListener('touchmove', ft, r) } function vt () { const t = nt(); t.removeEventListener('mousedown', ct, !0), t.removeEventListener('touchend', ct, r), t.removeEventListener('touchstart', lt, r), t.removeEventListener('touchmove', ft, r) } function mt (t, e) { const n = rt().box; function r (t) { t.target === n && (O(n, 'remove', r), e()) } if (t === 0) return e(); O(n, 'remove', A), O(n, 'add', r), A = r } function gt (t, n, r) { void 0 === r && (r = !1), c(Y.props.triggerTarget || e).forEach(function (e) { e.addEventListener(t, n, r), z.push({ node: e, eventType: t, handler: n, options: r }) }) } function ht () { let t; Z() && (gt('touchstart', yt, { passive: !0 }), gt('touchend', xt, { passive: !0 })), (t = Y.props.trigger, t.split(/\s+/).filter(Boolean)).forEach(function (t) { if (t !== 'manual') switch (gt(t, yt), t) { case 'mouseenter':gt('mouseleave', xt); break; case 'focus':gt(n ? 'focusout' : 'blur', Et); break; case 'focusin':gt('focusout', Et) } }) } function bt () { z.forEach(function (t) { const e = t.node; const n = t.eventType; const r = t.handler; const o = t.options; e.removeEventListener(n, r, o) }), z = [] } function yt (t) { let e; let n = !1; if (Y.state.isEnabled && !Ot(t) && !I) { const r = ((e = y) == null ? void 0 : e.type) === 'focus'; y = t, D = t.currentTarget, ut(), !Y.state.isVisible && h(t) && U.forEach(function (e) { return e(t) }), t.type === 'click' && (Y.props.trigger.indexOf('mouseenter') < 0 || V) && !1 !== Y.props.hideOnClick && Y.state.isVisible ? n = !0 : Lt(t), t.type === 'click' && (V = !n), n && !r && Dt(t) } } function wt (t) { const e = t.target; const n = et().contains(e) || $.contains(e); t.type === 'mousemove' && n || (function (t, e) { const n = e.clientX; const r = e.clientY; return t.every(function (t) { const e = t.popperRect; const o = t.popperState; const i = t.props.interactiveBorder; const a = l(o.placement); const s = o.modifiersData.offset; if (!s) return !0; const u = a === 'bottom' ? s.top.y : 0; const p = a === 'top' ? s.bottom.y : 0; const c = a === 'right' ? s.left.x : 0; const f = a === 'left' ? s.right.x : 0; const d = e.top - r + u > i; const v = r - e.bottom - p > i; const m = e.left - n + c > i; const g = n - e.right - f > i; return d || v || m || g }) }(At().concat($).map(function (t) { let e; const n = (e = t._tippy.popperInstance) == null ? void 0 : e.state; return n ? { popperRect: t.getBoundingClientRect(), popperState: n, props: P } : null }).filter(Boolean), t)) && (pt(), Dt(t)) } function xt (t) { Ot(t) || Y.props.trigger.indexOf('click') >= 0 && V || (Y.props.interactive ? Y.hideWithInteractivity(t) : Dt(t)) } function Et (t) { Y.props.trigger.indexOf('focusin') < 0 && t.target !== et() || Y.props.interactive && t.relatedTarget && $.contains(t.relatedTarget) || Dt(t) } function Ot (t) { return !!T.isTouch && Z() !== t.type.indexOf('touch') >= 0 } function Ct () { Tt(); const n = Y.props; const r = n.popperOptions; const o = n.placement; const i = n.offset; const a = n.getReferenceClientRect; const s = n.moveTransition; const u = tt() ? B($).arrow : null; const p = a ? { getBoundingClientRect: a, contextElement: a.contextElement || et() } : e; const c = [{ name: 'offset', options: { offset: i } }, { name: 'preventOverflow', options: { padding: { top: 2, bottom: 2, left: 5, right: 5 } } }, { name: 'flip', options: { padding: 5 } }, { name: 'computeStyles', options: { adaptive: !s } }, { name: '$$tippy', enabled: !0, phase: 'beforeWrite', requires: ['computeStyles'], fn: function (t) { const e = t.state; if (tt()) { const n = rt().box; ['placement', 'reference-hidden', 'escaped'].forEach(function (t) { t === 'placement' ? n.setAttribute('data-placement', e.placement) : e.attributes.popper['data-popper-' + t] ? n.setAttribute('data-' + t, '') : n.removeAttribute('data-' + t) }), e.attributes.popper = {} } } }]; tt() && u && c.push({ name: 'arrow', options: { element: u, padding: 3 } }), c.push.apply(c, (r == null ? void 0 : r.modifiers) || []), Y.popperInstance = t.createPopper(p, $, Object.assign({}, r, { placement: o, onFirstUpdate: L, modifiers: c })) } function Tt () { Y.popperInstance && (Y.popperInstance.destroy(), Y.popperInstance = null) } function At () { return d($.querySelectorAll('[data-tippy-root]')) } function Lt (t) { Y.clearDelayTimeouts(), t && at('onTrigger', [Y, t]), dt(); let e = ot(!0); const n = Q(); const r = n[0]; const o = n[1]; T.isTouch && r === 'hold' && o && (e = o), e ? p = setTimeout(function () { Y.show() }, e) : Y.show() } function Dt (t) { if (Y.clearDelayTimeouts(), at('onUntrigger', [Y, t]), Y.state.isVisible) { if (!(Y.props.trigger.indexOf('mouseenter') >= 0 && Y.props.trigger.indexOf('click') >= 0 && ['mouseleave', 'mousemove'].indexOf(t.type) >= 0 && V)) { const e = ot(!1); e ? g = setTimeout(function () { Y.state.isVisible && Y.hide() }, e) : b = requestAnimationFrame(function () { Y.hide() }) } } else vt() } } function F (t, e) { void 0 === e && (e = {}); const n = R.plugins.concat(e.plugins || []); document.addEventListener('touchstart', L, r), window.addEventListener('blur', k); const o = Object.assign({}, e, { plugins: n }); const i = y(t).reduce(function (t, e) { const n = e && z(e, o); return n && t.push(n), t }, []); return g(t) ? i[0] : i }F.defaultProps = R, F.setDefaultProps = function (t) { Object.keys(t).forEach(function (e) { R[e] = t[e] }) }, F.currentInput = T; const W = Object.assign({}, t.applyStyles, { effect: function (t) { const e = t.state; const n = { popper: { position: e.options.strategy, left: '0', top: '0', margin: '0' }, arrow: { position: 'absolute' }, reference: {} }; Object.assign(e.elements.popper.style, n.popper), e.styles = n, e.elements.arrow && Object.assign(e.elements.arrow.style, n.arrow) } }); const X = { mouseover: 'mouseenter', focusin: 'focus', click: 'click' }; const Y = { name: 'animateFill', defaultValue: !1, fn: function (t) { let e; if ((e = t.props.render) == null || !e.$$tippy) return {}; const n = B(t.popper); const r = n.box; const o = n.content; const i = t.props.animateFill ? (function () { const t = m(); return t.className = 'tippy-backdrop', x([t], 'hidden'), t }()) : null; return { onCreate: function () { i && (r.insertBefore(i, r.firstElementChild), r.setAttribute('data-animatefill', ''), r.style.overflow = 'hidden', t.setProps({ arrow: !1, animation: 'shift-away' })) }, onMount: function () { if (i) { const t = r.style.transitionDuration; const e = Number(t.replace('ms', '')); o.style.transitionDelay = Math.round(e / 10) + 'ms', i.style.transitionDuration = t, x([i], 'visible') } }, onShow: function () { i && (i.style.transitionDuration = '0ms') }, onHide: function () { i && x([i], 'hidden') } } } }; let q = { clientX: 0, clientY: 0 }; let $ = []; function J (t) { const e = t.clientX; const n = t.clientY; q = { clientX: e, clientY: n } } const G = { name: 'followCursor', defaultValue: !1, fn: function (t) { const e = t.reference; const n = E(t.props.triggerTarget || e); let r = !1; let o = !1; let i = !0; let a = t.props; function s () { return t.props.followCursor === 'initial' && t.state.isVisible } function u () { n.addEventListener('mousemove', f) } function p () { n.removeEventListener('mousemove', f) } function c () { r = !0, t.setProps({ getReferenceClientRect: null }), r = !1 } function f (n) { const r = !n.target || e.contains(n.target); const o = t.props.followCursor; const i = n.clientX; const a = n.clientY; const s = e.getBoundingClientRect(); const u = i - s.left; const p = a - s.top; !r && t.props.interactive || t.setProps({ getReferenceClientRect: function () { const t = e.getBoundingClientRect(); let n = i; let r = a; o === 'initial' && (n = t.left + u, r = t.top + p); const s = o === 'horizontal' ? t.top : r; const c = o === 'vertical' ? t.right : n; const f = o === 'horizontal' ? t.bottom : r; const l = o === 'vertical' ? t.left : n; return { width: c - l, height: f - s, top: s, right: c, bottom: f, left: l } } }) } function l () { t.props.followCursor && ($.push({ instance: t, doc: n }), (function (t) { t.addEventListener('mousemove', J) }(n))) } function d () { ($ = $.filter(function (e) { return e.instance !== t })).filter(function (t) { return t.doc === n }).length === 0 && (function (t) { t.removeEventListener('mousemove', J) }(n)) } return { onCreate: l, onDestroy: d, onBeforeUpdate: function () { a = t.props }, onAfterUpdate: function (e, n) { const i = n.followCursor; r || void 0 !== i && a.followCursor !== i && (d(), i ? (l(), !t.state.isMounted || o || s() || u()) : (p(), c())) }, onMount: function () { t.props.followCursor && !o && (i && (f(q), i = !1), s() || u()) }, onTrigger: function (t, e) { h(e) && (q = { clientX: e.clientX, clientY: e.clientY }), o = e.type === 'focus' }, onHidden: function () { t.props.followCursor && (c(), p(), i = !0) } } } }; const K = { name: 'inlinePositioning', defaultValue: !1, fn: function (t) { let e; const n = t.reference; let r = -1; let o = !1; let i = []; const a = { name: 'tippyInlinePositioning', enabled: !0, phase: 'afterWrite', fn: function (o) { const a = o.state; t.props.inlinePositioning && (i.indexOf(a.placement) !== -1 && (i = []), e !== a.placement && i.indexOf(a.placement) === -1 && (i.push(a.placement), t.setProps({ getReferenceClientRect: function () { return (function (t) { return (function (t, e, n, r) { if (n.length < 2 || t === null) return e; if (n.length === 2 && r >= 0 && n[0].left > n[1].right) return n[r] || e; switch (t) { case 'top':case 'bottom':var o = n[0]; var i = n[n.length - 1]; var a = t === 'top'; var s = o.top; var u = i.bottom; var p = a ? o.left : i.left; var c = a ? o.right : i.right; return { top: s, bottom: u, left: p, right: c, width: c - p, height: u - s }; case 'left':case 'right':var f = Math.min.apply(Math, n.map(function (t) { return t.left })); var l = Math.max.apply(Math, n.map(function (t) { return t.right })); var d = n.filter(function (e) { return 'left' === t ? e.left === f : e.right === l }); var v = d[0].top; var m = d[d.length - 1].bottom; return { top: v, bottom: m, left: f, right: l, width: l - f, height: m - v }; default:return e } }(l(t), n.getBoundingClientRect(), d(n.getClientRects()), r)) }(a.placement)) } })), e = a.placement) } }; function s () { let e; o || (e = (function (t, e) { let n; return { popperOptions: Object.assign({}, t.popperOptions, { modifiers: [].concat((((n = t.popperOptions) == null ? void 0 : n.modifiers) || []).filter(function (t) { return t.name !== e.name }), [e]) }) } }(t.props, a)), o = !0, t.setProps(e), o = !1) } return { onCreate: s, onAfterUpdate: s, onTrigger: function (e, n) { if (h(n)) { const o = d(t.reference.getClientRects()); const i = o.find(function (t) { return t.left - 2 <= n.clientX && t.right + 2 >= n.clientX && t.top - 2 <= n.clientY && t.bottom + 2 >= n.clientY }); const a = o.indexOf(i); r = a > -1 ? a : r } }, onHidden: function () { r = -1 } } } }; const Q = { name: 'sticky', defaultValue: !1, fn: function (t) { const e = t.reference; const n = t.popper; function r (e) { return !0 === t.props.sticky || t.props.sticky === e } let o = null; let i = null; function a () { const s = r('reference') ? (t.popperInstance ? t.popperInstance.state.elements.reference : e).getBoundingClientRect() : null; const u = r('popper') ? n.getBoundingClientRect() : null; (s && Z(o, s) || u && Z(i, u)) && t.popperInstance && t.popperInstance.update(), o = s, i = u, t.state.isMounted && requestAnimationFrame(a) } return { onMount: function () { t.props.sticky && a() } } } }; function Z (t, e) { return !t || !e || (t.top !== e.top || t.right !== e.right || t.bottom !== e.bottom || t.left !== e.left) } return e && (function (t) { const e = document.createElement('style'); e.textContent = t, e.setAttribute('data-tippy-stylesheet', ''); const n = document.head; const r = document.querySelector('head>style,head>link'); r ? n.insertBefore(e, r) : n.appendChild(e) }('.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}')), F.setDefaultProps({ plugins: [Y, G, K, Q], render: N }), F.createSingleton = function (t, e) { let n; void 0 === e && (e = {}); let r; let o = t; let i = []; let a = []; let s = e.overrides; let u = []; let f = !1; function l () { a = o.map(function (t) { return c(t.props.triggerTarget || t.reference) }).reduce(function (t, e) { return t.concat(e) }, []) } function d () { i = o.map(function (t) { return t.reference }) } function v (t) { o.forEach(function (e) { t ? e.enable() : e.disable() }) } function g (t) { return o.map(function (e) { const n = e.setProps; return e.setProps = function (o) { n(o), e.reference === r && t.setProps(o) }, function () { e.setProps = n } }) } function h (t, e) { const n = a.indexOf(e); if (e !== r) { r = e; const u = (s || []).concat('content').reduce(function (t, e) { return t[e] = o[n].props[e], t }, {}); t.setProps(Object.assign({}, u, { getReferenceClientRect: typeof u.getReferenceClientRect === 'function' ? u.getReferenceClientRect : function () { let t; return (t = i[n]) == null ? void 0 : t.getBoundingClientRect() } })) } }v(!1), d(), l(); const b = { fn: function () { return { onDestroy: function () { v(!0) }, onHidden: function () { r = null }, onClickOutside: function (t) { t.props.showOnCreate && !f && (f = !0, r = null) }, onShow: function (t) { t.props.showOnCreate && !f && (f = !0, h(t, i[0])) }, onTrigger: function (t, e) { h(t, e.currentTarget) } } } }; const y = F(m(), Object.assign({}, p(e, ['overrides']), { plugins: [b].concat(e.plugins || []), triggerTarget: a, popperOptions: Object.assign({}, e.popperOptions, { modifiers: [].concat(((n = e.popperOptions) == null ? void 0 : n.modifiers) || [], [W]) }) })); const w = y.show; y.show = function (t) { if (w(), !r && t == null) return h(y, i[0]); if (!r || t != null) { if (typeof t === 'number') return i[t] && h(y, i[t]); if (o.indexOf(t) >= 0) { const e = t.reference; return h(y, e) } return i.indexOf(t) >= 0 ? h(y, t) : void 0 } }, y.showNext = function () { const t = i[0]; if (!r) return y.show(0); const e = i.indexOf(r); y.show(i[e + 1] || t) }, y.showPrevious = function () { const t = i[i.length - 1]; if (!r) return y.show(t); const e = i.indexOf(r); const n = i[e - 1] || t; y.show(n) }; const x = y.setProps; return y.setProps = function (t) { s = t.overrides || s, x(t) }, y.setInstances = function (t) { v(!0), u.forEach(function (t) { return t() }), o = t, v(!1), d(), l(), u = g(y), y.setProps({ triggerTarget: a }) }, u = g(y), y }, F.delegate = function (t, e) { let n = []; let o = []; let i = !1; const a = e.target; const s = p(e, ['target']); const u = Object.assign({}, s, { trigger: 'manual', touch: !1 }); const f = Object.assign({ touch: R.touch }, s, { showOnCreate: !0 }); const l = F(t, u); function d (t) { if (t.target && !i) { const n = t.target.closest(a); if (n) { const r = n.getAttribute('data-tippy-trigger') || e.trigger || R.trigger; if (!n._tippy && !(t.type === 'touchstart' && typeof f.touch === 'boolean' || t.type !== 'touchstart' && r.indexOf(X[t.type]) < 0)) { const s = F(n, f); s && (o = o.concat(s)) } } } } function v (t, e, r, o) { void 0 === o && (o = !1), t.addEventListener(e, r, o), n.push({ node: t, eventType: e, handler: r, options: o }) } return c(l).forEach(function (t) { const e = t.destroy; const a = t.enable; const s = t.disable; t.destroy = function (t) { void 0 === t && (t = !0), t && o.forEach(function (t) { t.destroy() }), o = [], n.forEach(function (t) { const e = t.node; const n = t.eventType; const r = t.handler; const o = t.options; e.removeEventListener(n, r, o) }), n = [], e() }, t.enable = function () { a(), o.forEach(function (t) { return t.enable() }), i = !1 }, t.disable = function () { s(), o.forEach(function (t) { return t.disable() }), i = !0 }, (function (t) { const e = t.reference; v(e, 'touchstart', d, r), v(e, 'mouseover', d), v(e, 'focusin', d), v(e, 'click', d) }(t)) }), l }, F.hideAll = function (t) { const e = void 0 === t ? {} : t; const n = e.exclude; const r = e.duration; _.forEach(function (t) { let e = !1; if (n && (e = b(n) ? t.reference === n : t.popper === n.popper), !e) { const o = t.props.duration; t.setProps({ duration: r }), t.hide(), t.state.isDestroyed || t.setProps({ duration: o }) } }) }, F.roundArrow = '<svg width="16" height="6" xmlns="http://www.w3.org/2000/svg"><path d="M0 6s1.796-.013 4.67-3.615C5.851.9 6.93.006 8 0c1.07-.006 2.148.887 3.343 2.385C14.233 6.005 16 6 16 6H0z"></svg>', F }))